File: export_marked_symbols2.d

package info (click to toggle)
ldc 1%3A1.40.0-5
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 63,308 kB
  • sloc: cpp: 85,368; ansic: 21,877; makefile: 1,705; sh: 1,018; asm: 584; objc: 135; exp: 48; python: 12
file content (32 lines) | stat: -rw-r--r-- 749 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 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();
}