mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 21:06:06 +00:00

A discriminator is used for the first occurrence of a name. inline int f1 () { static union { int a; long int b; }; static union { int c; double d; }; return a+c; } The name of the second union is mangled as _ZZ2f1vE1c_0 instead of _ZZ2f1vE1c. Differential Revision: http://reviews.llvm.org/D6295 llvm-svn: 224131
43 lines
526 B
C++
43 lines
526 B
C++
// RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
|
|
|
|
// CHECK-DAG: @_ZZ2f0vE1a
|
|
// CHECK-DAG: @_ZZ2f0vE1c
|
|
// CHECK-DAG: @_ZZ2f0vE1e_0
|
|
inline int f0() {
|
|
static union {
|
|
int a;
|
|
long int b;
|
|
};
|
|
|
|
static union {
|
|
int c;
|
|
double d;
|
|
};
|
|
|
|
if (0) {
|
|
static union {
|
|
int e;
|
|
int f;
|
|
};
|
|
}
|
|
static union {
|
|
int e;
|
|
int f;
|
|
};
|
|
|
|
return a+c;
|
|
}
|
|
|
|
inline void nop() {
|
|
static union {
|
|
union {
|
|
};
|
|
};
|
|
}
|
|
|
|
int f1 (int a, int c) {
|
|
nop();
|
|
return a+c+f0();
|
|
}
|
|
|