mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-04 09:00:33 +03:00
55 lines
2.3 KiB
D
55 lines
2.3 KiB
D
// Tests -fvisibility={default,hidden} for special symbols generated for
|
|
// aggregates on non-Windows targets.
|
|
|
|
// UNSUPPORTED: Windows
|
|
|
|
// RUN: %ldc %s -shared -fvisibility=default -of=lib%t_default%so
|
|
// RUN: nm -g lib%t_default%so | FileCheck -check-prefix=DEFAULT -check-prefix=BOTH %s
|
|
|
|
// RUN: %ldc %s -shared -fvisibility=hidden -of=lib%t_hidden%so
|
|
// RUN: nm -g lib%t_hidden%so | FileCheck -check-prefix=HIDDEN -check-prefix=BOTH %s
|
|
|
|
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultC11__interface24export_aggregate_symbols8DefaultI{{.*}}__vtblZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultC11__interface24export_aggregate_symbols8DefaultI{{.*}}__vtblZ
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultC16__interfaceInfosZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultC16__interfaceInfosZ
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultC6__initZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultC6__initZ
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultC6__vtblZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultC6__vtblZ
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultC7__ClassZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultC7__ClassZ
|
|
class DefaultC : DefaultI { void foo() {} }
|
|
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultI11__InterfaceZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultI11__InterfaceZ
|
|
interface DefaultI { void foo(); }
|
|
|
|
// DEFAULT: _D24export_aggregate_symbols8DefaultS6__initZ
|
|
// HIDDEN-NOT: _D24export_aggregate_symbols8DefaultS6__initZ
|
|
struct DefaultS { int nonZero = 1; }
|
|
|
|
|
|
|
|
// BOTH: _D24export_aggregate_symbols9ExportedC11__interface24export_aggregate_symbols9ExportedI{{.*}}__vtblZ
|
|
// BOTH: _D24export_aggregate_symbols9ExportedC16__interfaceInfosZ
|
|
// BOTH: _D24export_aggregate_symbols9ExportedC6__initZ
|
|
// BOTH: _D24export_aggregate_symbols9ExportedC6__vtblZ
|
|
// BOTH: _D24export_aggregate_symbols9ExportedC7__ClassZ
|
|
export class ExportedC : ExportedI { void foo() {} }
|
|
|
|
// BOTH: _D24export_aggregate_symbols9ExportedI11__InterfaceZ
|
|
export interface ExportedI { void foo(); }
|
|
|
|
// BOTH: _D24export_aggregate_symbols9ExportedS6__initZ
|
|
export struct ExportedS { int nonZero = 1; }
|
|
|
|
|
|
|
|
// struct TypeInfos:
|
|
|
|
// DEFAULT: _D45TypeInfo_S24export_aggregate_symbols8DefaultS6__initZ
|
|
// HIDDEN-NOT: _D45TypeInfo_S24export_aggregate_symbols8DefaultS6__initZ
|
|
|
|
// BOTH: _D46TypeInfo_S24export_aggregate_symbols9ExportedS6__initZ
|