Cosmetic changes.
[oota-llvm.git] / test / DebugInfo / globalGetElementPtr.ll
1 ; RUN: llvm-as < %s | llc
2 ; ModuleID = 'foo.c'
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
4 target triple = "i686-apple-darwin8"
5         %llvm.dbg.anchor.type = type { i32, i32 }
6         %llvm.dbg.basictype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, i32 }
7         %llvm.dbg.compile_unit.type = type { i32, %struct.anon*, i32, i8*, i8*, i8* }
8         %llvm.dbg.compositetype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, %struct.anon*, %struct.anon* }
9         %llvm.dbg.derivedtype.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, i64, i64, i64, i32, %struct.anon* }
10         %llvm.dbg.global_variable.type = type { i32, %struct.anon*, %struct.anon*, i8*, i8*, i8*, %struct.anon*, i32, %struct.anon*, i1, i1, %struct.anon* }
11         %llvm.dbg.subprogram.type = type { i32, %struct.anon*, %struct.anon*, i8*, i8*, i8*, %struct.anon*, i32, %struct.anon*, i1, i1 }
12         %llvm.dbg.subrange.type = type { i32, i64, i64 }
13         %llvm.dbg.variable.type = type { i32, %struct.anon*, i8*, %struct.anon*, i32, %struct.anon* }
14         %struct.S271 = type { [0 x %struct.anon], %struct.anon }
15         %struct.anon = type {  }
16 @llvm.dbg.subprogram = internal constant %llvm.dbg.subprogram.type {
17     i32 393262, 
18     %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %struct.anon*), 
19     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
20     i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), 
21     i8* getelementptr ([4 x i8]* @.str3, i32 0, i32 0), 
22     i8* null, 
23     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
24     i32 2, 
25     %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %struct.anon*), 
26     i1 false, 
27     i1 true }, section "llvm.metadata"          ; <%llvm.dbg.subprogram.type*> [#uses=1]
28 @llvm.dbg.subprograms = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 46 }, section "llvm.metadata"         ; <%llvm.dbg.anchor.type*> [#uses=1]
29 @llvm.dbg.compile_unit = internal constant %llvm.dbg.compile_unit.type {
30     i32 393233, 
31     %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.compile_units to %struct.anon*), 
32     i32 1, 
33     i8* getelementptr ([6 x i8]* @.str, i32 0, i32 0), 
34     i8* getelementptr ([23 x i8]* @.str1, i32 0, i32 0), 
35     i8* getelementptr ([52 x i8]* @.str2, i32 0, i32 0) }, section "llvm.metadata"              ; <%llvm.dbg.compile_unit.type*> [#uses=1]
36 @llvm.dbg.compile_units = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 17 }, section "llvm.metadata"               ; <%llvm.dbg.anchor.type*> [#uses=1]
37 @.str = internal constant [6 x i8] c"foo.c\00", section "llvm.metadata"         ; <[6 x i8]*> [#uses=1]
38 @.str1 = internal constant [23 x i8] c"/Volumes/MacOS9/tests/\00", section "llvm.metadata"              ; <[23 x i8]*> [#uses=1]
39 @.str2 = internal constant [52 x i8] c"4.2.1 (Based on Apple Inc. build 5546) (LLVM build)\00", section "llvm.metadata"         ; <[52 x i8]*> [#uses=1]
40 @.str3 = internal constant [4 x i8] c"var\00", section "llvm.metadata"          ; <[4 x i8]*> [#uses=1]
41 @llvm.dbg.derivedtype = internal constant %llvm.dbg.derivedtype.type {
42     i32 393231, 
43     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
44     i8* null, 
45     %struct.anon* null, 
46     i32 0, 
47     i64 32, 
48     i64 32, 
49     i64 0, 
50     i32 0, 
51     %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype to %struct.anon*) }, section "llvm.metadata"           ; <%llvm.dbg.derivedtype.type*> [#uses=1]
52 @llvm.dbg.basictype = internal constant %llvm.dbg.basictype.type {
53     i32 393252, 
54     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
55     i8* getelementptr ([5 x i8]* @.str4, i32 0, i32 0), 
56     %struct.anon* null, 
57     i32 0, 
58     i64 8, 
59     i64 8, 
60     i64 0, 
61     i32 0, 
62     i32 6 }, section "llvm.metadata"            ; <%llvm.dbg.basictype.type*> [#uses=1]
63 @.str4 = internal constant [5 x i8] c"char\00", section "llvm.metadata"         ; <[5 x i8]*> [#uses=1]
64 @llvm.dbg.variable = internal constant %llvm.dbg.variable.type {
65     i32 393474, 
66     %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*), 
67     i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), 
68     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
69     i32 2, 
70     %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype to %struct.anon*) }, section "llvm.metadata"               ; <%llvm.dbg.variable.type*> [#uses=1]
71 @.str5 = internal constant [7 x i8] c"retval\00", section "llvm.metadata"               ; <[7 x i8]*> [#uses=1]
72 @a271 = weak global [0 x %struct.S271] zeroinitializer          ; <[0 x %struct.S271]*> [#uses=3]
73 @llvm.dbg.subprogram6 = internal constant %llvm.dbg.subprogram.type {
74     i32 393262, 
75     %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.subprograms to %struct.anon*), 
76     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
77     i8* getelementptr ([5 x i8]* @.str7, i32 0, i32 0), 
78     i8* getelementptr ([5 x i8]* @.str7, i32 0, i32 0), 
79     i8* null, 
80     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
81     i32 3, 
82     %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %struct.anon*), 
83     i1 false, 
84     i1 true }, section "llvm.metadata"          ; <%llvm.dbg.subprogram.type*> [#uses=1]
85 @.str7 = internal constant [5 x i8] c"main\00", section "llvm.metadata"         ; <[5 x i8]*> [#uses=1]
86 @llvm.dbg.basictype8 = internal constant %llvm.dbg.basictype.type {
87     i32 393252, 
88     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
89     i8* getelementptr ([4 x i8]* @.str9, i32 0, i32 0), 
90     %struct.anon* null, 
91     i32 0, 
92     i64 32, 
93     i64 32, 
94     i64 0, 
95     i32 0, 
96     i32 5 }, section "llvm.metadata"            ; <%llvm.dbg.basictype.type*> [#uses=1]
97 @.str9 = internal constant [4 x i8] c"int\00", section "llvm.metadata"          ; <[4 x i8]*> [#uses=1]
98 @llvm.dbg.variable10 = internal constant %llvm.dbg.variable.type {
99     i32 393474, 
100     %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*), 
101     i8* getelementptr ([7 x i8]* @.str5, i32 0, i32 0), 
102     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
103     i32 3, 
104     %struct.anon* bitcast (%llvm.dbg.basictype.type* @llvm.dbg.basictype8 to %struct.anon*) }, section "llvm.metadata"          ; <%llvm.dbg.variable.type*> [#uses=1]
105 @llvm.dbg.global_variable = internal constant %llvm.dbg.global_variable.type {
106     i32 393268, 
107     %struct.anon* bitcast (%llvm.dbg.anchor.type* @llvm.dbg.global_variables to %struct.anon*), 
108     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
109     i8* getelementptr ([5 x i8]* @.str11, i32 0, i32 0), 
110     i8* getelementptr ([5 x i8]* @.str11, i32 0, i32 0), 
111     i8* null, 
112     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
113     i32 1, 
114     %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype to %struct.anon*), 
115     i1 false, 
116     i1 true, 
117     %struct.anon* getelementptr ([0 x %struct.S271]* @a271, i32 0, i32 0, i32 0, i32 0) }, section "llvm.metadata"              ; <%llvm.dbg.global_variable.type*> [#uses=0]
118 @llvm.dbg.global_variables = linkonce constant %llvm.dbg.anchor.type { i32 393216, i32 52 }, section "llvm.metadata"            ; <%llvm.dbg.anchor.type*> [#uses=1]
119 @.str11 = internal constant [5 x i8] c"a271\00", section "llvm.metadata"                ; <[5 x i8]*> [#uses=1]
120 @llvm.dbg.compositetype = internal constant %llvm.dbg.compositetype.type {
121     i32 393217, 
122     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
123     i8* null, 
124     %struct.anon* null, 
125     i32 0, 
126     i64 0, 
127     i64 8, 
128     i64 0, 
129     i32 0, 
130     %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype12 to %struct.anon*), 
131     %struct.anon* bitcast ([1 x %struct.anon*]* @llvm.dbg.array25 to %struct.anon*) }, section "llvm.metadata"          ; <%llvm.dbg.compositetype.type*> [#uses=1]
132 @llvm.dbg.compositetype12 = internal constant %llvm.dbg.compositetype.type {
133     i32 393235, 
134     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
135     i8* getelementptr ([5 x i8]* @.str13, i32 0, i32 0), 
136     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
137     i32 1, 
138     i64 0, 
139     i64 8, 
140     i64 0, 
141     i32 0, 
142     %struct.anon* null, 
143     %struct.anon* bitcast ([2 x %struct.anon*]* @llvm.dbg.array23 to %struct.anon*) }, section "llvm.metadata"          ; <%llvm.dbg.compositetype.type*> [#uses=1]
144 @.str13 = internal constant [5 x i8] c"S271\00", section "llvm.metadata"                ; <[5 x i8]*> [#uses=1]
145 @llvm.dbg.derivedtype14 = internal constant %llvm.dbg.derivedtype.type {
146     i32 393229, 
147     %struct.anon* null, 
148     i8* getelementptr ([2 x i8]* @.str15, i32 0, i32 0), 
149     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
150     i32 1, 
151     i64 0, 
152     i64 8, 
153     i64 0, 
154     i32 0, 
155     %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype16 to %struct.anon*) }, section "llvm.metadata"         ; <%llvm.dbg.derivedtype.type*> [#uses=1]
156 @.str15 = internal constant [2 x i8] c"a\00", section "llvm.metadata"           ; <[2 x i8]*> [#uses=1]
157 @llvm.dbg.compositetype16 = internal constant %llvm.dbg.compositetype.type {
158     i32 393217, 
159     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
160     i8* null, 
161     %struct.anon* null, 
162     i32 0, 
163     i64 0, 
164     i64 8, 
165     i64 0, 
166     i32 0, 
167     %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype17 to %struct.anon*), 
168     %struct.anon* bitcast ([1 x %struct.anon*]* @llvm.dbg.array18 to %struct.anon*) }, section "llvm.metadata"          ; <%llvm.dbg.compositetype.type*> [#uses=1]
169 @llvm.dbg.compositetype17 = internal constant %llvm.dbg.compositetype.type {
170     i32 393235, 
171     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
172     i8* null, 
173     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
174     i32 1, 
175     i64 0, 
176     i64 8, 
177     i64 0, 
178     i32 0, 
179     %struct.anon* null, 
180     %struct.anon* bitcast ([0 x %struct.anon*]* @llvm.dbg.array to %struct.anon*) }, section "llvm.metadata"            ; <%llvm.dbg.compositetype.type*> [#uses=1]
181 @llvm.dbg.array = internal constant [0 x %struct.anon*] zeroinitializer, section "llvm.metadata"                ; <[0 x %struct.anon*]*> [#uses=1]
182 @llvm.dbg.subrange = internal constant %llvm.dbg.subrange.type {
183     i32 393249, 
184     i64 0, 
185     i64 4 }, section "llvm.metadata"            ; <%llvm.dbg.subrange.type*> [#uses=1]
186 @llvm.dbg.array18 = internal constant [1 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange to %struct.anon*) ], section "llvm.metadata"             ; <[1 x %struct.anon*]*> [#uses=1]
187 @llvm.dbg.derivedtype19 = internal constant %llvm.dbg.derivedtype.type {
188     i32 393229, 
189     %struct.anon* null, 
190     i8* getelementptr ([2 x i8]* @.str20, i32 0, i32 0), 
191     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
192     i32 1, 
193     i64 0, 
194     i64 8, 
195     i64 0, 
196     i32 0, 
197     %struct.anon* bitcast (%llvm.dbg.compositetype.type* @llvm.dbg.compositetype21 to %struct.anon*) }, section "llvm.metadata"         ; <%llvm.dbg.derivedtype.type*> [#uses=1]
198 @.str20 = internal constant [2 x i8] c"b\00", section "llvm.metadata"           ; <[2 x i8]*> [#uses=1]
199 @llvm.dbg.compositetype21 = internal constant %llvm.dbg.compositetype.type {
200     i32 393235, 
201     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
202     i8* null, 
203     %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*), 
204     i32 1, 
205     i64 0, 
206     i64 8, 
207     i64 0, 
208     i32 0, 
209     %struct.anon* null, 
210     %struct.anon* bitcast ([0 x %struct.anon*]* @llvm.dbg.array22 to %struct.anon*) }, section "llvm.metadata"          ; <%llvm.dbg.compositetype.type*> [#uses=1]
211 @llvm.dbg.array22 = internal constant [0 x %struct.anon*] zeroinitializer, section "llvm.metadata"              ; <[0 x %struct.anon*]*> [#uses=1]
212 @llvm.dbg.array23 = internal constant [2 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype14 to %struct.anon*), %struct.anon* bitcast (%llvm.dbg.derivedtype.type* @llvm.dbg.derivedtype19 to %struct.anon*) ], section "llvm.metadata"               ; <[2 x %struct.anon*]*> [#uses=1]
213 @llvm.dbg.subrange24 = internal constant %llvm.dbg.subrange.type {
214     i32 393249, 
215     i64 0, 
216     i64 4 }, section "llvm.metadata"            ; <%llvm.dbg.subrange.type*> [#uses=1]
217 @llvm.dbg.array25 = internal constant [1 x %struct.anon*] [ %struct.anon* bitcast (%llvm.dbg.subrange.type* @llvm.dbg.subrange24 to %struct.anon*) ], section "llvm.metadata"           ; <[1 x %struct.anon*]*> [#uses=1]
218
219 define i8* @var() {
220 entry:
221         %retval = alloca i8*            ; <i8**> [#uses=3]
222         %tmp = alloca i8*               ; <i8**> [#uses=2]
223         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
224         call void @llvm.dbg.func.start( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*) )
225         call void @llvm.dbg.stoppoint( i32 2, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
226         %retval1 = bitcast i8** %retval to %struct.anon*                ; <%struct.anon*> [#uses=1]
227         call void @llvm.dbg.declare( %struct.anon* %retval1, %struct.anon* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to %struct.anon*) )
228         bitcast %struct.S271* getelementptr ([0 x %struct.S271]* @a271, i32 0, i32 0) to i8*            ; <i8*>:0 [#uses=0]
229         store i8* bitcast ([0 x %struct.S271]* @a271 to i8*), i8** %tmp, align 4
230         %tmp2 = load i8** %tmp, align 4         ; <i8*> [#uses=1]
231         store i8* %tmp2, i8** %retval, align 4
232         br label %return
233
234 return:         ; preds = %entry
235         %retval3 = load i8** %retval            ; <i8*> [#uses=1]
236         call void @llvm.dbg.stoppoint( i32 2, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
237         call void @llvm.dbg.region.end( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram to %struct.anon*) )
238         ret i8* %retval3
239 }
240
241 declare void @llvm.dbg.func.start(%struct.anon*) nounwind 
242
243 declare void @llvm.dbg.stoppoint(i32, i32, %struct.anon*) nounwind 
244
245 declare void @llvm.dbg.declare(%struct.anon*, %struct.anon*) nounwind 
246
247 declare void @llvm.dbg.region.end(%struct.anon*) nounwind 
248
249 define i32 @main() {
250 entry:
251         %retval = alloca i32            ; <i32*> [#uses=2]
252         %"alloca point" = bitcast i32 0 to i32          ; <i32> [#uses=0]
253         call void @llvm.dbg.func.start( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*) )
254         call void @llvm.dbg.stoppoint( i32 3, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
255         %retval1 = bitcast i32* %retval to %struct.anon*                ; <%struct.anon*> [#uses=1]
256         call void @llvm.dbg.declare( %struct.anon* %retval1, %struct.anon* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable10 to %struct.anon*) )
257         br label %return
258
259 return:         ; preds = %entry
260         %retval2 = load i32* %retval            ; <i32> [#uses=1]
261         call void @llvm.dbg.stoppoint( i32 3, i32 0, %struct.anon* bitcast (%llvm.dbg.compile_unit.type* @llvm.dbg.compile_unit to %struct.anon*) )
262         call void @llvm.dbg.region.end( %struct.anon* bitcast (%llvm.dbg.subprogram.type* @llvm.dbg.subprogram6 to %struct.anon*) )
263         ret i32 %retval2
264 }