adds --legacy:noAsmSemSymbol

This commit is contained in:
ringabout
2024-12-26 21:35:29 +08:00
parent 86d6f71f5a
commit 6e3037372d
6 changed files with 9 additions and 6 deletions

View File

@@ -173,3 +173,5 @@ proc initDefines*(symbols: StringTableRef) =
defineSymbol("nimHasXorSet")
defineSymbol("nimHasLegacyNoStrictDefs")
defineSymbol("nimHasAsmSemSymbol")

View File

@@ -10,7 +10,6 @@ define:nimPreviewProcConversion
define:nimPreviewRangeDefault
define:nimPreviewNonVarDestructor
define:nimPreviewCheckedClose
define:nimPreviewAsmSemSymbol
threads:off
#import:"$projectpath/testability"

View File

@@ -250,6 +250,8 @@ type
## Old transformation for closures in JS backend
noStrictDefs
## disable "strictdefs"
noAsmSemSymbol
## disable type checking for backticked symbols in the `asm/emit` statements
SymbolFilesOption* = enum
disabledSf, writeOnlySf, readOnlySf, v2Sf, stressTest

View File

@@ -637,10 +637,11 @@ proc semAsmOrEmit*(con: PContext, n: PNode, marker: char): PNode =
# XXX what to do here if 'amb' is true?
if e != nil:
incl(e.flags, sfUsed)
if isDefined(con.config, "nimPreviewAsmSemSymbol"):
result.add con.semExprWithType(con, newSymNode(e), {efTypeAllowed})
else:
if noAsmSemSymbol in con.config.legacyFeatures:
result.add newSymNode(e)
else:
result.add con.semExprWithType(con, newSymNode(e), {efTypeAllowed})
else:
result.add newStrNode(nkStrLit, sub)
else: