diff --git a/compiler/cgen.nim b/compiler/cgen.nim index be155df8dc..95f1ee9aea 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -1837,9 +1837,9 @@ proc writeHeader(m: BModule) = proc getCFile(m: BModule): AbsoluteFile = let ext = - if m.compileToCpp: ".cpp" - elif m.config.cmd == cmdCompileToOC or sfCompileToObjC in m.module.flags: ".m" - else: ".c" + if m.compileToCpp: ".nim.cpp" + elif m.config.cmd == cmdCompileToOC or sfCompileToObjC in m.module.flags: ".nim.m" + else: ".nim.c" result = changeFileExt(completeCFilePath(m.config, withPackageName(m.config, m.cfilename)), ext) when false: diff --git a/testament/specs.nim b/testament/specs.nim index 11286ceaba..4d09f438f1 100644 --- a/testament/specs.nim +++ b/testament/specs.nim @@ -78,7 +78,7 @@ proc getCmd*(s: TSpec): string = result = s.cmd const - targetToExt*: array[TTarget, string] = ["c", "cpp", "m", "js"] + targetToExt*: array[TTarget, string] = ["nim.c", "nim.cpp", "nim.m", "js"] targetToCmd*: array[TTarget, string] = ["c", "cpp", "objc", "js"] when not declared(parseCfgBool): diff --git a/tests/compilepragma/test.c b/tests/compilepragma/test.c new file mode 100644 index 0000000000..fc0482e40c --- /dev/null +++ b/tests/compilepragma/test.c @@ -0,0 +1,3 @@ +int foo(int a, int b) { + return a+b; +} diff --git a/tests/compilepragma/test.nim b/tests/compilepragma/test.nim new file mode 100644 index 0000000000..56087fa577 --- /dev/null +++ b/tests/compilepragma/test.nim @@ -0,0 +1,10 @@ +discard """ + output: '''44''' + joinable: "false" +""" + +{.compile: "test.c".} + +proc foo(a, b: cint): cint {.importc: "foo", cdecl.} + +echo foo(40, 4)