forked from OSchip/llvm-project
47 lines
964 B
C++
47 lines
964 B
C++
// RUN: %clang_cc1 -std=c++20 %s -triple %itanium_abi_triple -emit-llvm -o - | FileCheck %s
|
|
|
|
// internal-linkage symbol mangling is implementation defined. Let's
|
|
// not mangle in the module attachment -- that unnecessarily bloats
|
|
// the symbols.
|
|
|
|
export module A;
|
|
|
|
// CHECK-DAG: void @_ZL6addonev(
|
|
static void addone() {}
|
|
// CHECK-DAG: @_ZL1x =
|
|
static int x = 5;
|
|
|
|
namespace {
|
|
// CHECK-DAG: void @_ZN12_GLOBAL__N_14frobEv(
|
|
void frob() {}
|
|
// CHECK-DAG: @_ZN12_GLOBAL__N_11yE =
|
|
int y = 2;
|
|
struct Bill {
|
|
void F();
|
|
};
|
|
// CHECK-DAG: void @_ZN12_GLOBAL__N_14Bill1FEv(
|
|
void Bill::F() {}
|
|
} // namespace
|
|
|
|
// CHECK-DAG: void @_ZL4FrobPN12_GLOBAL__N_14BillE(
|
|
static void Frob(Bill *b) {
|
|
if (b)
|
|
b->F();
|
|
}
|
|
|
|
namespace N {
|
|
// CHECK-DAG: void @_ZN1NL5innerEv(
|
|
static void inner() {}
|
|
// CHECK-DAG: @_ZN1NL1zE
|
|
static int z = 3;
|
|
} // namespace N
|
|
|
|
// CHECK-DAG: void @_ZW1A6addsixv(
|
|
void addsix() {
|
|
Frob(nullptr);
|
|
frob();
|
|
addone();
|
|
void(x + y + N::z);
|
|
N::inner();
|
|
}
|