summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorflywind <43030857+xflywind@users.noreply.github.com>2020-11-03 18:41:41 +0800
committerGitHub <noreply@github.com>2020-11-03 11:41:41 +0100
commitb8bcf236dd29ee2a6ec7587dc3f028f14023ebec (patch)
tree65e96f2ec13ac371229464a869e1863f0f22b442 /compiler
parentfde17b159fdc96eda5609fd98e1fe3c7a34ef40b (diff)
downloadNim-b8bcf236dd29ee2a6ec7587dc3f028f14023ebec.tar.gz
fix #12640 (#15829)
Diffstat (limited to 'compiler')
-rw-r--r--compiler/ccgstmts.nim8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim
index aaed37508..367e693e9 100644
--- a/compiler/ccgstmts.nim
+++ b/compiler/ccgstmts.nim
@@ -382,7 +382,13 @@ proc genSingleVar(p: BProc, v: PSym; vn, value: PNode) =
 
 proc genSingleVar(p: BProc, a: PNode) =
   let v = a[0].sym
-  if sfCompileTime in v.flags: return
+  if sfCompileTime in v.flags:
+    # fix issue #12640
+    # {.global, compileTime.} pragma in proc
+    if sfGlobal in v.flags and p.prc != nil and p.prc.kind == skProc:
+      discard
+    else:
+      return
   genSingleVar(p, v, a[0], a[2])
 
 proc genClosureVar(p: BProc, a: PNode) =