xref: /aosp_15_r20/external/clang/test/CodeGenCXX/mangle-local-anonymous-unions.cpp (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -emit-llvm -triple %itanium_abi_triple -o - | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // CHECK-DAG: @_ZZ2f0vE1a
4*67e74705SXin Li // CHECK-DAG: @_ZZ2f0vE1c
5*67e74705SXin Li // CHECK-DAG: @_ZZ2f0vE1e_0
f0()6*67e74705SXin Li inline int f0() {
7*67e74705SXin Li   static union {
8*67e74705SXin Li     int a;
9*67e74705SXin Li     long int b;
10*67e74705SXin Li   };
11*67e74705SXin Li 
12*67e74705SXin Li   static union {
13*67e74705SXin Li     int c;
14*67e74705SXin Li     double d;
15*67e74705SXin Li   };
16*67e74705SXin Li 
17*67e74705SXin Li   if (0) {
18*67e74705SXin Li     static union {
19*67e74705SXin Li       int e;
20*67e74705SXin Li       int f;
21*67e74705SXin Li     };
22*67e74705SXin Li   }
23*67e74705SXin Li   static union {
24*67e74705SXin Li     int e;
25*67e74705SXin Li     int f;
26*67e74705SXin Li   };
27*67e74705SXin Li 
28*67e74705SXin Li   return a+c;
29*67e74705SXin Li }
30*67e74705SXin Li 
nop()31*67e74705SXin Li inline void nop() {
32*67e74705SXin Li   static union {
33*67e74705SXin Li     union {
34*67e74705SXin Li     };
35*67e74705SXin Li   };
36*67e74705SXin Li }
37*67e74705SXin Li 
f1(int a,int c)38*67e74705SXin Li int f1 (int a, int c) {
39*67e74705SXin Li   nop();
40*67e74705SXin Li   return a+c+f0();
41*67e74705SXin Li }
42*67e74705SXin Li 
43