Fix linking issue in cpp codegen

Declare the root symbol only once and have the other modules depending
on it emit an `extern` declaration.

Fixes #9013
This commit is contained in:
LemonBoy
2018-09-19 12:46:50 +02:00
parent a892d519a6
commit 334032294f
2 changed files with 14 additions and 1 deletions

View File

@@ -103,6 +103,10 @@ type
PNimType = ptr TNimType
when defined(nimTypeNames):
var nimTypeRoot {.compilerProc.}: PNimType
# Declare this variable only once in system.nim
when declared(ThisIsSystem):
var nimTypeRoot {.compilerProc.}: PNimType
else:
var nimTypeRoot {.importc.}: PNimType
# node.len may be the ``first`` element of a set

9
tests/cpp/t9013.nim Normal file
View File

@@ -0,0 +1,9 @@
discard """
targets: "cpp"
cmd: "nim $target --debugger:native $options $file"
"""
# The --debugger switch is needed in order to enable the defined(nimTypeNames)
# code path in hti.nim
import typeinfo
var tt: Any