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