blob: ec15dad291dae5d782399e6c17b703959255b8d9 (
plain) (
tree)
|
|
discard """
output: ""
"""
const LibName {.used.} =
when defined(windows):
"visibility.dll"
elif defined(macosx):
"libvisibility.dylib"
else:
"libvisibility.so"
when compileOption("app", "lib"):
var
bar {.exportc.}: int
thr {.exportc, threadvar.}: int
proc foo() {.exportc.} = discard
var
exported {.exportc, dynlib.}: int
exported_thr {.exportc, threadvar, dynlib.}: int
proc exported_func() {.exportc, dynlib.} = discard
elif isMainModule:
import dynlib
let handle = loadLib(LibName)
template check(sym: untyped) =
const s = astToStr(sym)
if handle.symAddr(s) != nil:
echo s, " is exported"
template checkE(sym: untyped) =
const s = astToStr(sym)
if handle.symAddr(s) == nil:
echo s, " is not exported"
check foo
check bar
check thr
checkE exported
checkE exported_thr
checkE exported_func
|