From 55cf971adfe25614da79e0e2196ea316dd1558c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arne=20D=C3=B6ring?= Date: Tue, 14 May 2019 01:28:44 +0200 Subject: [PATCH] fixes #11194 (#11242) --- compiler/cgen.nim | 5 ++--- tests/compiler/tcppCompileToNamespace.nim | 12 ++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 tests/compiler/tcppCompileToNamespace.nim diff --git a/compiler/cgen.nim b/compiler/cgen.nim index dc653a2601..10dfef6d99 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 0000000000..1d09772364 --- /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"