summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorrku <rokups@zoho.com>2015-08-10 12:02:49 +0300
committerrku <rokups@zoho.com>2015-08-10 12:02:49 +0300
commit6a7a44bbf248fad96ed0eed115e3b3c77a77bf89 (patch)
tree9dfd5acc23f7c01a400997d842083b3f6ffbf29b /compiler
parent43bfda057b56d6c67222d4c86e3be90dd3f01e59 (diff)
downloadNim-6a7a44bbf248fad96ed0eed115e3b3c77a77bf89.tar.gz
cValidAssemblers -> const set
Added assembler validity check
Diffstat (limited to 'compiler')
-rw-r--r--compiler/extccomp.nim6
-rw-r--r--compiler/msgs.nim2
2 files changed, 7 insertions, 1 deletions
diff --git a/compiler/extccomp.nim b/compiler/extccomp.nim
index 541927f55..683de67e0 100644
--- a/compiler/extccomp.nim
+++ b/compiler/extccomp.nim
@@ -368,7 +368,9 @@ var
   cIncludes*: seq[string] = @[]   # directories to search for included files
   cLibs*: seq[string] = @[]       # directories to search for lib files
   cLinkedLibs*: seq[string] = @[] # libraries to link
-  cValidAssemblers* = @[asmFasm]
+
+const
+  cValidAssemblers* = {asmFasm}
 
 # implementation
 
@@ -567,6 +569,8 @@ proc getCompileCFileCmd*(cfilename: string, isExternal = false): string =
 
     if c == ccNone:
       rawMessage(errExternalAssemblerNotFound, "")
+    elif c notin cValidAssemblers:
+      rawMessage(errExternalAssemblerNotValid, customAssembler)
 
   var options = cFileSpecificOptions(cfilename)
   var exe = getConfigVar(c, ".exe")
diff --git a/compiler/msgs.nim b/compiler/msgs.nim
index 3dea30964..e739bb4b9 100644
--- a/compiler/msgs.nim
+++ b/compiler/msgs.nim
@@ -109,6 +109,7 @@ type
     errGenericLambdaNotAllowed,
     errCompilerDoesntSupportTarget,
     errExternalAssemblerNotFound,
+    errExternalAssemblerNotValid,
     errUser,
     warnCannotOpenFile,
     warnOctalEscape, warnXIsNeverRead, warnXmightNotBeenInit,
@@ -372,6 +373,7 @@ const
                                 "of the generic paramers can be inferred from the expected signature.",
     errCompilerDoesntSupportTarget: "The current compiler \'$1\' doesn't support the requested compilation target",
     errExternalAssemblerNotFound: "External assembler not found",
+    errExternalAssemblerNotValid: "External assembler '$1' is not a valid assembler",
     errUser: "$1",
     warnCannotOpenFile: "cannot open \'$1\'",
     warnOctalEscape: "octal escape sequences do not exist; leading zero is ignored",