This commit is contained in:
Andreas Rumpf
2016-12-21 11:38:33 +01:00
parent 06a8d37f9a
commit d2fe857f94
2 changed files with 16 additions and 6 deletions

View File

@@ -732,10 +732,12 @@ proc genProcNoForward(m: BModule, prc: PSym) =
# dependency to a compilerproc:
discard cgsym(m, prc.name.s)
return
if lfNoDecl in prc.loc.flags:
if sfImportc in prc.flags:
fillProcLoc(m, prc)
useHeader(m, prc)
genProcPrototype(m, prc)
if lfHeader in prc.loc.flags:
useHeader(m, prc)
elif lfNoDecl notin prc.loc.flags:
genProcPrototype(m, prc)
elif prc.typ.callConv == ccInline:
# We add inline procs to the calling module to enable C based inlining.
# This also means that a check with ``q.declaredThings`` is wrong, we need
@@ -760,15 +762,13 @@ proc genProcNoForward(m: BModule, prc: PSym) =
symInDynamicLib(q, prc)
else:
symInDynamicLibPartial(m, prc)
elif sfImportc notin prc.flags:
else:
var q = findPendingModule(m, prc)
fillProcLoc(q, prc)
useHeader(m, prc)
genProcPrototype(m, prc)
if q != nil and not containsOrIncl(q.declaredThings, prc.id):
genProcAux(q, prc)
else:
fillProcLoc(m, prc)
proc requestConstImpl(p: BProc, sym: PSym) =
var m = p.module

View File

@@ -0,0 +1,10 @@
discard """
cmd: "nim cpp $file"
output: '''Hello world'''
"""
# bug #5136
{.compile: "foo.c".}
proc myFunc(): cstring {.importc.}
echo myFunc()