diff options
-rw-r--r-- | compiler/cgen.nim | 5 | ||||
-rw-r--r-- | tests/compiler/tcppCompileToNamespace.nim | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/compiler/cgen.nim b/compiler/cgen.nim index dc653a260..10dfef6d9 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -1695,13 +1695,12 @@ proc genModule(m: BModule, cfile: Cfile): Rope = result = getFileHeader(m.config, cfile) result.add(genMergeInfo(m)) - if m.config.cppCustomNamespace.len > 0: - result.add openNamespaceNim(m.config.cppCustomNamespace) - generateThreadLocalStorage(m) generateHeaders(m) add(result, genSectionStart(cfsHeaders, m.config)) add(result, m.s[cfsHeaders]) + if m.config.cppCustomNamespace.len > 0: + result.add openNamespaceNim(m.config.cppCustomNamespace) add(result, genSectionEnd(cfsHeaders, m.config)) add(result, genSectionStart(cfsFrameDefines, m.config)) if m.s[cfsFrameDefines].len > 0: diff --git a/tests/compiler/tcppCompileToNamespace.nim b/tests/compiler/tcppCompileToNamespace.nim new file mode 100644 index 000000000..1d0977236 --- /dev/null +++ b/tests/compiler/tcppCompileToNamespace.nim @@ -0,0 +1,12 @@ +discard """ +cmd: "nim cpp --cppCompileToNamespace:foo $options -r $file" +target: cpp +""" + +# Theoretically nim could just ignore the flag cppCompileToNamespace +# and this test would pass. Setting ``ccodeCheck`` for a c++ target +# doesn't work. + +import os + +echo "a" / "b" |