xref: /aosp_15_r20/external/llvm/test/DebugInfo/COFF/local-variables.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-windows-msvc < %s | FileCheck %s --check-prefix=ASM
2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-windows-msvc < %s -filetype=obj | llvm-readobj -codeview - | FileCheck %s --check-prefix=OBJ
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker; This LL file was generated by running 'clang -g -gcodeview' on the
5*9880d681SAndroid Build Coastguard Worker; following code:
6*9880d681SAndroid Build Coastguard Worker;  1: extern "C" volatile int x;
7*9880d681SAndroid Build Coastguard Worker;  2: extern "C" void capture(int *p);
8*9880d681SAndroid Build Coastguard Worker;  3: static __forceinline inline void will_be_inlined() {
9*9880d681SAndroid Build Coastguard Worker;  4:   int v = 3;
10*9880d681SAndroid Build Coastguard Worker;  5:   capture(&v);
11*9880d681SAndroid Build Coastguard Worker;  6: }
12*9880d681SAndroid Build Coastguard Worker;  7: extern "C" void f(int param) {
13*9880d681SAndroid Build Coastguard Worker;  8:   if (param) {
14*9880d681SAndroid Build Coastguard Worker;  9:     int a = 42;
15*9880d681SAndroid Build Coastguard Worker; 10:     will_be_inlined();
16*9880d681SAndroid Build Coastguard Worker; 11:     capture(&a);
17*9880d681SAndroid Build Coastguard Worker; 12:   } else {
18*9880d681SAndroid Build Coastguard Worker; 13:     int b = 42;
19*9880d681SAndroid Build Coastguard Worker; 14:     will_be_inlined();
20*9880d681SAndroid Build Coastguard Worker; 15:     capture(&b);
21*9880d681SAndroid Build Coastguard Worker; 16:   }
22*9880d681SAndroid Build Coastguard Worker; 17: }
23*9880d681SAndroid Build Coastguard Worker
24*9880d681SAndroid Build Coastguard Worker; ASM: f:                                      # @f
25*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_file        1 "D:\\src\\llvm\\build\\t.cpp"
26*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 0 1 7 0 is_stmt 0       # t.cpp:7:0
27*9880d681SAndroid Build Coastguard Worker; ASM: .seh_proc f
28*9880d681SAndroid Build Coastguard Worker; ASM: # BB#0:                                 # %entry
29*9880d681SAndroid Build Coastguard Worker; ASM:         subq    $56, %rsp
30*9880d681SAndroid Build Coastguard Worker; ASM:         #DEBUG_VALUE: f:param <- [%RSP+52]
31*9880d681SAndroid Build Coastguard Worker; ASM:         movl    %ecx, 52(%rsp)
32*9880d681SAndroid Build Coastguard Worker; ASM: [[prologue_end:\.Ltmp.*]]:
33*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 0 1 8 7                 # t.cpp:8:7
34*9880d681SAndroid Build Coastguard Worker; ASM:         testl   %ecx, %ecx
35*9880d681SAndroid Build Coastguard Worker; ASM:         je      .LBB0_2
36*9880d681SAndroid Build Coastguard Worker; ASM: [[if_start:\.Ltmp.*]]:
37*9880d681SAndroid Build Coastguard Worker; ASM: # BB#1:                                 # %if.then
38*9880d681SAndroid Build Coastguard Worker; ASM:         #DEBUG_VALUE: f:param <- [%RSP+52]
39*9880d681SAndroid Build Coastguard Worker; ASM:         #DEBUG_VALUE: a <- [%RSP+40]
40*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 0 1 9 9                 # t.cpp:9:9
41*9880d681SAndroid Build Coastguard Worker; ASM:         movl    $42, 40(%rsp)
42*9880d681SAndroid Build Coastguard Worker; ASM: [[inline_site1:\.Ltmp.*]]:
43*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 1 1 4 7                 # t.cpp:4:7
44*9880d681SAndroid Build Coastguard Worker; ASM:         movl    $3, 44(%rsp)
45*9880d681SAndroid Build Coastguard Worker; ASM:         leaq    44(%rsp), %rcx
46*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 1 1 5 3                 # t.cpp:5:3
47*9880d681SAndroid Build Coastguard Worker; ASM:         callq   capture
48*9880d681SAndroid Build Coastguard Worker; ASM:         leaq    40(%rsp), %rcx
49*9880d681SAndroid Build Coastguard Worker; ASM:         jmp     .LBB0_3
50*9880d681SAndroid Build Coastguard Worker; ASM: [[else_start:\.Ltmp.*]]:
51*9880d681SAndroid Build Coastguard Worker; ASM: .LBB0_2:                                # %if.else
52*9880d681SAndroid Build Coastguard Worker; ASM:         #DEBUG_VALUE: f:param <- [%RSP+52]
53*9880d681SAndroid Build Coastguard Worker; ASM:         #DEBUG_VALUE: b <- [%RSP+36]
54*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 0 1 13 9                # t.cpp:13:9
55*9880d681SAndroid Build Coastguard Worker; ASM:         movl    $42, 36(%rsp)
56*9880d681SAndroid Build Coastguard Worker; ASM: [[inline_site2:\.Ltmp.*]]:
57*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 2 1 4 7                 # t.cpp:4:7
58*9880d681SAndroid Build Coastguard Worker; ASM:         movl    $3, 48(%rsp)
59*9880d681SAndroid Build Coastguard Worker; ASM:         leaq    48(%rsp), %rcx
60*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 2 1 5 3                 # t.cpp:5:3
61*9880d681SAndroid Build Coastguard Worker; ASM:         callq   capture
62*9880d681SAndroid Build Coastguard Worker; ASM:         leaq    36(%rsp), %rcx
63*9880d681SAndroid Build Coastguard Worker; ASM: [[inline_site2_end:\.Ltmp.*]]:
64*9880d681SAndroid Build Coastguard Worker; ASM: .LBB0_3:                                # %if.end
65*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 0 1 15 5                # t.cpp:15:5
66*9880d681SAndroid Build Coastguard Worker; ASM:         callq   capture
67*9880d681SAndroid Build Coastguard Worker; ASM: [[else_end:\.Ltmp.*]]:
68*9880d681SAndroid Build Coastguard Worker; ASM:         .cv_loc 0 1 17 1                # t.cpp:17:1
69*9880d681SAndroid Build Coastguard Worker; ASM:         nop
70*9880d681SAndroid Build Coastguard Worker; ASM:         addq    $56, %rsp
71*9880d681SAndroid Build Coastguard Worker; ASM:         retq
72*9880d681SAndroid Build Coastguard Worker; ASM: [[param_end:\.Ltmp.*]]:
73*9880d681SAndroid Build Coastguard Worker
74*9880d681SAndroid Build Coastguard Worker; ASM: .short  4414                    # Record kind: S_LOCAL
75*9880d681SAndroid Build Coastguard Worker; ASM: .long   116                     # TypeIndex
76*9880d681SAndroid Build Coastguard Worker; ASM: .short  1                       # Flags
77*9880d681SAndroid Build Coastguard Worker; ASM: .asciz  "param"
78*9880d681SAndroid Build Coastguard Worker; ASM: .cv_def_range    [[prologue_end]] [[param_end]], "E\021O\001\000\0004\000\000\000"
79*9880d681SAndroid Build Coastguard Worker; ASM: .short  4414                    # Record kind: S_LOCAL
80*9880d681SAndroid Build Coastguard Worker; ASM: .long   116                     # TypeIndex
81*9880d681SAndroid Build Coastguard Worker; ASM: .short  0                       # Flags
82*9880d681SAndroid Build Coastguard Worker; ASM: .asciz  "a"
83*9880d681SAndroid Build Coastguard Worker; ASM: .cv_def_range    [[if_start]] [[else_start]], "E\021O\001\000\000(\000\000\000"
84*9880d681SAndroid Build Coastguard Worker; ASM: .short  4414                    # Record kind: S_LOCAL
85*9880d681SAndroid Build Coastguard Worker; ASM: .long   116                     # TypeIndex
86*9880d681SAndroid Build Coastguard Worker; ASM: .short  0                       # Flags
87*9880d681SAndroid Build Coastguard Worker; ASM: .asciz  "b"
88*9880d681SAndroid Build Coastguard Worker; ASM: .cv_def_range    [[else_start]] [[else_end]], "E\021O\001\000\000$\000\000\000"
89*9880d681SAndroid Build Coastguard Worker; ASM: .short  4429                    # Record kind: S_INLINESITE
90*9880d681SAndroid Build Coastguard Worker; ASM: .short  4414                    # Record kind: S_LOCAL
91*9880d681SAndroid Build Coastguard Worker; ASM: .long   116                     # TypeIndex
92*9880d681SAndroid Build Coastguard Worker; ASM: .short  0                       # Flags
93*9880d681SAndroid Build Coastguard Worker; ASM: .asciz  "v"
94*9880d681SAndroid Build Coastguard Worker; ASM: .cv_def_range    [[inline_site1]] [[else_start]], "E\021O\001\000\000,\000\000\000"
95*9880d681SAndroid Build Coastguard Worker; ASM: .short  4430                    # Record kind: S_INLINESITE_END
96*9880d681SAndroid Build Coastguard Worker; ASM: .short  4429                    # Record kind: S_INLINESITE
97*9880d681SAndroid Build Coastguard Worker; ASM: .short  4414                    # Record kind: S_LOCAL
98*9880d681SAndroid Build Coastguard Worker; ASM: .long   116                     # TypeIndex
99*9880d681SAndroid Build Coastguard Worker; ASM: .short  0                       # Flags
100*9880d681SAndroid Build Coastguard Worker; ASM: .asciz  "v"
101*9880d681SAndroid Build Coastguard Worker; ASM: .cv_def_range    [[inline_site2]] [[inline_site2_end]], "E\021O\001\000\0000\000\000\000"
102*9880d681SAndroid Build Coastguard Worker; ASM: .short  4430                    # Record kind: S_INLINESITE_END
103*9880d681SAndroid Build Coastguard Worker
104*9880d681SAndroid Build Coastguard Worker; OBJ:  Subsection [
105*9880d681SAndroid Build Coastguard Worker; OBJ:    SubSectionType: Symbols (0xF1)
106*9880d681SAndroid Build Coastguard Worker; OBJ:    ProcStart {
107*9880d681SAndroid Build Coastguard Worker; OBJ:      DisplayName: f
108*9880d681SAndroid Build Coastguard Worker; OBJ:      LinkageName: f
109*9880d681SAndroid Build Coastguard Worker; OBJ:    }
110*9880d681SAndroid Build Coastguard Worker; OBJ:    Local {
111*9880d681SAndroid Build Coastguard Worker; OBJ:      Type: int (0x74)
112*9880d681SAndroid Build Coastguard Worker; OBJ:      Flags [ (0x1)
113*9880d681SAndroid Build Coastguard Worker; OBJ:        IsParameter (0x1)
114*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
115*9880d681SAndroid Build Coastguard Worker; OBJ:      VarName: param
116*9880d681SAndroid Build Coastguard Worker; OBJ:    }
117*9880d681SAndroid Build Coastguard Worker; OBJ:    DefRangeRegisterRel {
118*9880d681SAndroid Build Coastguard Worker; OBJ:      BaseRegister: 335
119*9880d681SAndroid Build Coastguard Worker; OBJ:      HasSpilledUDTMember: No
120*9880d681SAndroid Build Coastguard Worker; OBJ:      OffsetInParent: 0
121*9880d681SAndroid Build Coastguard Worker; OBJ:      BasePointerOffset: 52
122*9880d681SAndroid Build Coastguard Worker; OBJ:      LocalVariableAddrRange {
123*9880d681SAndroid Build Coastguard Worker; OBJ:        OffsetStart: .text+0x8
124*9880d681SAndroid Build Coastguard Worker; OBJ:        ISectStart: 0x0
125*9880d681SAndroid Build Coastguard Worker; OBJ:        Range: 0x4F
126*9880d681SAndroid Build Coastguard Worker; OBJ:      }
127*9880d681SAndroid Build Coastguard Worker; OBJ:    }
128*9880d681SAndroid Build Coastguard Worker; OBJ:    Local {
129*9880d681SAndroid Build Coastguard Worker; OBJ:      Type: int (0x74)
130*9880d681SAndroid Build Coastguard Worker; OBJ:      Flags [ (0x0)
131*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
132*9880d681SAndroid Build Coastguard Worker; OBJ:      VarName: a
133*9880d681SAndroid Build Coastguard Worker; OBJ:    }
134*9880d681SAndroid Build Coastguard Worker; OBJ:    DefRangeRegisterRel {
135*9880d681SAndroid Build Coastguard Worker; OBJ:      BaseRegister: 335
136*9880d681SAndroid Build Coastguard Worker; OBJ:      HasSpilledUDTMember: No
137*9880d681SAndroid Build Coastguard Worker; OBJ:      OffsetInParent: 0
138*9880d681SAndroid Build Coastguard Worker; OBJ:      BasePointerOffset: 40
139*9880d681SAndroid Build Coastguard Worker; OBJ:      LocalVariableAddrRange {
140*9880d681SAndroid Build Coastguard Worker; OBJ:        OffsetStart: .text+0xC
141*9880d681SAndroid Build Coastguard Worker; OBJ:        ISectStart: 0x0
142*9880d681SAndroid Build Coastguard Worker; OBJ:        Range: 0x21
143*9880d681SAndroid Build Coastguard Worker; OBJ:      }
144*9880d681SAndroid Build Coastguard Worker; OBJ:    }
145*9880d681SAndroid Build Coastguard Worker; OBJ:    Local {
146*9880d681SAndroid Build Coastguard Worker; OBJ:      Type: int (0x74)
147*9880d681SAndroid Build Coastguard Worker; OBJ:      Flags [ (0x0)
148*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
149*9880d681SAndroid Build Coastguard Worker; OBJ:      VarName: b
150*9880d681SAndroid Build Coastguard Worker; OBJ:    }
151*9880d681SAndroid Build Coastguard Worker; OBJ:    DefRangeRegisterRel {
152*9880d681SAndroid Build Coastguard Worker; OBJ:      BaseRegister: 335
153*9880d681SAndroid Build Coastguard Worker; OBJ:      HasSpilledUDTMember: No
154*9880d681SAndroid Build Coastguard Worker; OBJ:      OffsetInParent: 0
155*9880d681SAndroid Build Coastguard Worker; OBJ:      BasePointerOffset: 36
156*9880d681SAndroid Build Coastguard Worker; OBJ:      LocalVariableAddrRange {
157*9880d681SAndroid Build Coastguard Worker; OBJ:        OffsetStart: .text+0x2D
158*9880d681SAndroid Build Coastguard Worker; OBJ:        ISectStart: 0x0
159*9880d681SAndroid Build Coastguard Worker; OBJ:        Range: 0x24
160*9880d681SAndroid Build Coastguard Worker; OBJ:      }
161*9880d681SAndroid Build Coastguard Worker; OBJ:    }
162*9880d681SAndroid Build Coastguard Worker; OBJ:    InlineSite {
163*9880d681SAndroid Build Coastguard Worker; OBJ:      PtrParent: 0x0
164*9880d681SAndroid Build Coastguard Worker; OBJ:      PtrEnd: 0x0
165*9880d681SAndroid Build Coastguard Worker; OBJ:      Inlinee: will_be_inlined (0x1002)
166*9880d681SAndroid Build Coastguard Worker; OBJ:      BinaryAnnotations [
167*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeLineOffset: 1
168*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeCodeOffset: 0x14
169*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xD, LineOffset: 1}
170*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeCodeLength: 0xC
171*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
172*9880d681SAndroid Build Coastguard Worker; OBJ:    }
173*9880d681SAndroid Build Coastguard Worker; OBJ:    Local {
174*9880d681SAndroid Build Coastguard Worker; OBJ:      Type: int (0x74)
175*9880d681SAndroid Build Coastguard Worker; OBJ:      Flags [ (0x0)
176*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
177*9880d681SAndroid Build Coastguard Worker; OBJ:      VarName: v
178*9880d681SAndroid Build Coastguard Worker; OBJ:    }
179*9880d681SAndroid Build Coastguard Worker; OBJ:    DefRangeRegisterRel {
180*9880d681SAndroid Build Coastguard Worker; OBJ:      BaseRegister: 335
181*9880d681SAndroid Build Coastguard Worker; OBJ:      HasSpilledUDTMember: No
182*9880d681SAndroid Build Coastguard Worker; OBJ:      OffsetInParent: 0
183*9880d681SAndroid Build Coastguard Worker; OBJ:      BasePointerOffset: 44
184*9880d681SAndroid Build Coastguard Worker; OBJ:      LocalVariableAddrRange {
185*9880d681SAndroid Build Coastguard Worker; OBJ:        OffsetStart: .text+0x14
186*9880d681SAndroid Build Coastguard Worker; OBJ:        ISectStart: 0x0
187*9880d681SAndroid Build Coastguard Worker; OBJ:        Range: 0x19
188*9880d681SAndroid Build Coastguard Worker; OBJ:      }
189*9880d681SAndroid Build Coastguard Worker; OBJ:    }
190*9880d681SAndroid Build Coastguard Worker; OBJ:    InlineSiteEnd {
191*9880d681SAndroid Build Coastguard Worker; OBJ:    }
192*9880d681SAndroid Build Coastguard Worker; OBJ:    InlineSite {
193*9880d681SAndroid Build Coastguard Worker; OBJ:      PtrParent: 0x0
194*9880d681SAndroid Build Coastguard Worker; OBJ:      PtrEnd: 0x0
195*9880d681SAndroid Build Coastguard Worker; OBJ:      Inlinee: will_be_inlined (0x1002)
196*9880d681SAndroid Build Coastguard Worker; OBJ:      BinaryAnnotations [
197*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeLineOffset: 1
198*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeCodeOffset: 0x35
199*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeCodeOffsetAndLineOffset: {CodeOffset: 0xD, LineOffset: 1}
200*9880d681SAndroid Build Coastguard Worker; OBJ:        ChangeCodeLength: 0xA
201*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
202*9880d681SAndroid Build Coastguard Worker; OBJ:    }
203*9880d681SAndroid Build Coastguard Worker; OBJ:    Local {
204*9880d681SAndroid Build Coastguard Worker; OBJ:      Type: int (0x74)
205*9880d681SAndroid Build Coastguard Worker; OBJ:      Flags [ (0x0)
206*9880d681SAndroid Build Coastguard Worker; OBJ:      ]
207*9880d681SAndroid Build Coastguard Worker; OBJ:      VarName: v
208*9880d681SAndroid Build Coastguard Worker; OBJ:    }
209*9880d681SAndroid Build Coastguard Worker; OBJ:    DefRangeRegisterRel {
210*9880d681SAndroid Build Coastguard Worker; OBJ:      BaseRegister: 335
211*9880d681SAndroid Build Coastguard Worker; OBJ:      HasSpilledUDTMember: No
212*9880d681SAndroid Build Coastguard Worker; OBJ:      OffsetInParent: 0
213*9880d681SAndroid Build Coastguard Worker; OBJ:      BasePointerOffset: 48
214*9880d681SAndroid Build Coastguard Worker; OBJ:      LocalVariableAddrRange {
215*9880d681SAndroid Build Coastguard Worker; OBJ:        OffsetStart: .text+0x35
216*9880d681SAndroid Build Coastguard Worker; OBJ:        ISectStart: 0x0
217*9880d681SAndroid Build Coastguard Worker; OBJ:        Range: 0x17
218*9880d681SAndroid Build Coastguard Worker; OBJ:      }
219*9880d681SAndroid Build Coastguard Worker; OBJ:    }
220*9880d681SAndroid Build Coastguard Worker; OBJ:    InlineSiteEnd {
221*9880d681SAndroid Build Coastguard Worker; OBJ:    }
222*9880d681SAndroid Build Coastguard Worker; OBJ:    ProcEnd
223*9880d681SAndroid Build Coastguard Worker; OBJ:  ]
224*9880d681SAndroid Build Coastguard Worker
225*9880d681SAndroid Build Coastguard Worker; ModuleID = 't.cpp'
226*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
227*9880d681SAndroid Build Coastguard Workertarget triple = "x86_64-pc-windows-msvc18.0.0"
228*9880d681SAndroid Build Coastguard Worker
229*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind uwtable
230*9880d681SAndroid Build Coastguard Workerdefine void @f(i32 %param) #0 !dbg !4 {
231*9880d681SAndroid Build Coastguard Workerentry:
232*9880d681SAndroid Build Coastguard Worker  %v.i1 = alloca i32, align 4
233*9880d681SAndroid Build Coastguard Worker  call void @llvm.dbg.declare(metadata i32* %v.i1, metadata !15, metadata !16), !dbg !17
234*9880d681SAndroid Build Coastguard Worker  %v.i = alloca i32, align 4
235*9880d681SAndroid Build Coastguard Worker  call void @llvm.dbg.declare(metadata i32* %v.i, metadata !15, metadata !16), !dbg !21
236*9880d681SAndroid Build Coastguard Worker  %param.addr = alloca i32, align 4
237*9880d681SAndroid Build Coastguard Worker  %a = alloca i32, align 4
238*9880d681SAndroid Build Coastguard Worker  %b = alloca i32, align 4
239*9880d681SAndroid Build Coastguard Worker  store i32 %param, i32* %param.addr, align 4
240*9880d681SAndroid Build Coastguard Worker  call void @llvm.dbg.declare(metadata i32* %param.addr, metadata !24, metadata !16), !dbg !25
241*9880d681SAndroid Build Coastguard Worker  %0 = load i32, i32* %param.addr, align 4, !dbg !26
242*9880d681SAndroid Build Coastguard Worker  %tobool = icmp ne i32 %0, 0, !dbg !26
243*9880d681SAndroid Build Coastguard Worker  br i1 %tobool, label %if.then, label %if.else, !dbg !27
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %entry
246*9880d681SAndroid Build Coastguard Worker  call void @llvm.dbg.declare(metadata i32* %a, metadata !28, metadata !16), !dbg !29
247*9880d681SAndroid Build Coastguard Worker  store i32 42, i32* %a, align 4, !dbg !29
248*9880d681SAndroid Build Coastguard Worker  store i32 3, i32* %v.i, align 4, !dbg !21
249*9880d681SAndroid Build Coastguard Worker  call void @capture(i32* %v.i) #3, !dbg !30
250*9880d681SAndroid Build Coastguard Worker  call void @capture(i32* %a), !dbg !31
251*9880d681SAndroid Build Coastguard Worker  br label %if.end, !dbg !32
252*9880d681SAndroid Build Coastguard Worker
253*9880d681SAndroid Build Coastguard Workerif.else:                                          ; preds = %entry
254*9880d681SAndroid Build Coastguard Worker  call void @llvm.dbg.declare(metadata i32* %b, metadata !33, metadata !16), !dbg !34
255*9880d681SAndroid Build Coastguard Worker  store i32 42, i32* %b, align 4, !dbg !34
256*9880d681SAndroid Build Coastguard Worker  store i32 3, i32* %v.i1, align 4, !dbg !17
257*9880d681SAndroid Build Coastguard Worker  call void @capture(i32* %v.i1) #3, !dbg !35
258*9880d681SAndroid Build Coastguard Worker  call void @capture(i32* %b), !dbg !36
259*9880d681SAndroid Build Coastguard Worker  br label %if.end
260*9880d681SAndroid Build Coastguard Worker
261*9880d681SAndroid Build Coastguard Workerif.end:                                           ; preds = %if.else, %if.then
262*9880d681SAndroid Build Coastguard Worker  ret void, !dbg !37
263*9880d681SAndroid Build Coastguard Worker}
264*9880d681SAndroid Build Coastguard Worker
265*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone
266*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.dbg.declare(metadata, metadata, metadata) #1
267*9880d681SAndroid Build Coastguard Worker
268*9880d681SAndroid Build Coastguard Workerdeclare void @capture(i32*) #2
269*9880d681SAndroid Build Coastguard Worker
270*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
271*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind readnone }
272*9880d681SAndroid Build Coastguard Workerattributes #2 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
273*9880d681SAndroid Build Coastguard Workerattributes #3 = { nounwind }
274*9880d681SAndroid Build Coastguard Worker
275*9880d681SAndroid Build Coastguard Worker!llvm.dbg.cu = !{!0}
276*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!11, !12, !13}
277*9880d681SAndroid Build Coastguard Worker!llvm.ident = !{!14}
278*9880d681SAndroid Build Coastguard Worker
279*9880d681SAndroid Build Coastguard Worker!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 3.9.0 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
280*9880d681SAndroid Build Coastguard Worker!1 = !DIFile(filename: "t.cpp", directory: "D:\5Csrc\5Cllvm\5Cbuild")
281*9880d681SAndroid Build Coastguard Worker!2 = !{}
282*9880d681SAndroid Build Coastguard Worker!4 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 7, type: !5, isLocal: false, isDefinition: true, scopeLine: 7, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
283*9880d681SAndroid Build Coastguard Worker!5 = !DISubroutineType(types: !6)
284*9880d681SAndroid Build Coastguard Worker!6 = !{null, !7}
285*9880d681SAndroid Build Coastguard Worker!7 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
286*9880d681SAndroid Build Coastguard Worker!8 = distinct !DISubprogram(name: "will_be_inlined", linkageName: "\01?will_be_inlined@@YAXXZ", scope: !1, file: !1, line: 3, type: !9, isLocal: true, isDefinition: true, scopeLine: 3, flags: DIFlagPrototyped, isOptimized: false, unit: !0, variables: !2)
287*9880d681SAndroid Build Coastguard Worker!9 = !DISubroutineType(types: !10)
288*9880d681SAndroid Build Coastguard Worker!10 = !{null}
289*9880d681SAndroid Build Coastguard Worker!11 = !{i32 2, !"CodeView", i32 1}
290*9880d681SAndroid Build Coastguard Worker!12 = !{i32 2, !"Debug Info Version", i32 3}
291*9880d681SAndroid Build Coastguard Worker!13 = !{i32 1, !"PIC Level", i32 2}
292*9880d681SAndroid Build Coastguard Worker!14 = !{!"clang version 3.9.0 "}
293*9880d681SAndroid Build Coastguard Worker!15 = !DILocalVariable(name: "v", scope: !8, file: !1, line: 4, type: !7)
294*9880d681SAndroid Build Coastguard Worker!16 = !DIExpression()
295*9880d681SAndroid Build Coastguard Worker!17 = !DILocation(line: 4, column: 7, scope: !8, inlinedAt: !18)
296*9880d681SAndroid Build Coastguard Worker!18 = distinct !DILocation(line: 14, column: 5, scope: !19)
297*9880d681SAndroid Build Coastguard Worker!19 = distinct !DILexicalBlock(scope: !20, file: !1, line: 12, column: 10)
298*9880d681SAndroid Build Coastguard Worker!20 = distinct !DILexicalBlock(scope: !4, file: !1, line: 8, column: 7)
299*9880d681SAndroid Build Coastguard Worker!21 = !DILocation(line: 4, column: 7, scope: !8, inlinedAt: !22)
300*9880d681SAndroid Build Coastguard Worker!22 = distinct !DILocation(line: 10, column: 5, scope: !23)
301*9880d681SAndroid Build Coastguard Worker!23 = distinct !DILexicalBlock(scope: !20, file: !1, line: 8, column: 14)
302*9880d681SAndroid Build Coastguard Worker!24 = !DILocalVariable(name: "param", arg: 1, scope: !4, file: !1, line: 7, type: !7)
303*9880d681SAndroid Build Coastguard Worker!25 = !DILocation(line: 7, column: 23, scope: !4)
304*9880d681SAndroid Build Coastguard Worker!26 = !DILocation(line: 8, column: 7, scope: !20)
305*9880d681SAndroid Build Coastguard Worker!27 = !DILocation(line: 8, column: 7, scope: !4)
306*9880d681SAndroid Build Coastguard Worker!28 = !DILocalVariable(name: "a", scope: !23, file: !1, line: 9, type: !7)
307*9880d681SAndroid Build Coastguard Worker!29 = !DILocation(line: 9, column: 9, scope: !23)
308*9880d681SAndroid Build Coastguard Worker!30 = !DILocation(line: 5, column: 3, scope: !8, inlinedAt: !22)
309*9880d681SAndroid Build Coastguard Worker!31 = !DILocation(line: 11, column: 5, scope: !23)
310*9880d681SAndroid Build Coastguard Worker!32 = !DILocation(line: 12, column: 3, scope: !23)
311*9880d681SAndroid Build Coastguard Worker!33 = !DILocalVariable(name: "b", scope: !19, file: !1, line: 13, type: !7)
312*9880d681SAndroid Build Coastguard Worker!34 = !DILocation(line: 13, column: 9, scope: !19)
313*9880d681SAndroid Build Coastguard Worker!35 = !DILocation(line: 5, column: 3, scope: !8, inlinedAt: !18)
314*9880d681SAndroid Build Coastguard Worker!36 = !DILocation(line: 15, column: 5, scope: !19)
315*9880d681SAndroid Build Coastguard Worker!37 = !DILocation(line: 17, column: 1, scope: !4)
316