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
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