xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenCXX/debug-info-anon-union-vars.cpp (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -emit-llvm -gdwarf-4 -triple x86_64-linux-gnu %s -o - | FileCheck %s
2*0a6a1f1dSLionel Sambuc 
3*0a6a1f1dSLionel Sambuc // Make sure that we emit a global variable for each of the members of the
4*0a6a1f1dSLionel Sambuc // anonymous union.
5*0a6a1f1dSLionel Sambuc 
6*0a6a1f1dSLionel Sambuc static union {
7*0a6a1f1dSLionel Sambuc   int c;
8*0a6a1f1dSLionel Sambuc   int d;
9*0a6a1f1dSLionel Sambuc   union {
10*0a6a1f1dSLionel Sambuc     int a;
11*0a6a1f1dSLionel Sambuc   };
12*0a6a1f1dSLionel Sambuc   struct {
13*0a6a1f1dSLionel Sambuc     int b;
14*0a6a1f1dSLionel Sambuc   };
15*0a6a1f1dSLionel Sambuc };
16*0a6a1f1dSLionel Sambuc 
test_it()17*0a6a1f1dSLionel Sambuc int test_it() {
18*0a6a1f1dSLionel Sambuc   c = 1;
19*0a6a1f1dSLionel Sambuc   d = 2;
20*0a6a1f1dSLionel Sambuc   a = 4;
21*0a6a1f1dSLionel Sambuc   return (c == 1);
22*0a6a1f1dSLionel Sambuc }
23*0a6a1f1dSLionel Sambuc 
24*0a6a1f1dSLionel Sambuc // CHECK: [[FILE:.*]] = {{.*}}[ DW_TAG_file_type ] [{{.*}}debug-info-anon-union-vars.cpp]
25*0a6a1f1dSLionel Sambuc // CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [c] [line 6] [local] [def]
26*0a6a1f1dSLionel Sambuc // CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [d] [line 6] [local] [def]
27*0a6a1f1dSLionel Sambuc // CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [a] [line 6] [local] [def]
28*0a6a1f1dSLionel Sambuc // CHECK: [[FILE]]{{.*}}[ DW_TAG_variable ] [b] [line 6] [local] [def]
29