ldc/tests/codegen/export_marked_symbols2.d

32 lines
749 B
D

// Tests that -fvisibility=hidden doesn't affect imported and fwd declared symbols,
// so that they can still be linked in from a shared library.
// UNSUPPORTED: Windows
// RUN: %ldc %S/inputs/export_marked_symbols_lib.d -shared -of=%t_lib%so
// RUN: %ldc %s -I%S/inputs -fvisibility=hidden -of=%t%exe %t_lib%so
// RUN: %ldc %s -I%S/inputs -fvisibility=hidden -of=%t%exe %t_lib%so -d-version=DECLARE_MANUALLY
version (DECLARE_MANUALLY)
{
extern(C++):
export extern __gshared int exportedGlobal;
extern __gshared int normalGlobal;
export void exportedFoo();
void normalFoo();
}
else
{
import export_marked_symbols_lib;
}
void main()
{
exportedGlobal = 1;
normalGlobal = 2;
exportedFoo();
normalFoo();
}