summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/cgen.nim5
-rw-r--r--tests/compiler/tcppCompileToNamespace.nim12
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"