Skip to content

Commit ddba4e8

Browse files
committed
[DebugInfo] a test failing because clang++ doesn't exist
Signed-off-by: Peter Rong <[email protected]>
1 parent ef7de8d commit ddba4e8

File tree

1 file changed

+239
-7
lines changed

1 file changed

+239
-7
lines changed

llvm/test/DebugInfo/ARM/stmt_seq_macho.test

Lines changed: 239 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
// RUN: split-file %s %t
22

3-
// RUN: clang++ --target=arm64-apple-macos11 \
4-
// RUN: %t/stmt_seq_macho.cpp -o %t/stmt_seq_macho.o \
5-
// RUN: -g -Oz -gdwarf-4 -c -mno-outline \
6-
// RUN: -mllvm -emit-func-debug-line-table-offsets \
7-
// RUN: -fdebug-compilation-dir=/private/tmp/stmt_seq \
8-
// RUN: -fno-unwind-tables -fno-exceptions
3+
// RUN: llc -filetype=obj -mtriple=arm64-apple-macos11 \
4+
// RUN: %t/stmt_seq_macho.ll -o %t/stmt_seq_macho.o \
5+
// RUN: -emit-func-debug-line-table-offsets
96

107
// RUN: llvm-dwarfdump -all %t/stmt_seq_macho.o | FileCheck %s
118

@@ -35,7 +32,7 @@
3532
// CHECK-NEXT: 0x0000000000000034 37 0 1 0 0 0 is_stmt
3633
// CHECK-NEXT: 0x0000000000000044 39 12 1 0 0 0 is_stmt prologue_end
3734
// CHECK-NEXT: 0x0000000000000050 40 12 1 0 0 0 is_stmt
38-
// CHECK-NEXT: 0x0000000000000058 40 9 1 0 0 0 is_stmt
35+
// CHECK-NEXT: 0x0000000000000058 40 9 1 0 0 0
3936
// CHECK-NEXT: 0x000000000000005c 41 12 1 0 0 0 is_stmt
4037
// CHECK-NEXT: 0x0000000000000068 42 12 1 0 0 0 is_stmt
4138
// CHECK-NEXT: 0x0000000000000070 41 9 1 0 0 0 is_stmt
@@ -47,6 +44,16 @@
4744
// CHECK-NEXT: 0x000000000000009c 34 85 1 0 0 0 is_stmt end_sequence
4845
// CHECK-NEXT: 0x000000000000009c 34 86 1 0 0 0 is_stmt prologue_end
4946

47+
48+
#--- gen
49+
clang++ --target=arm64-apple-macos11 \
50+
stmt_seq_macho.cpp \
51+
-o stmt_seq_macho.ll -S -emit-llvm \
52+
-g -Oz -gdwarf-4 -mno-outline \
53+
-mllvm -emit-func-debug-line-table-offsets \
54+
-fdebug-compilation-dir=/private/tmp/stmt_seq \
55+
-fno-unwind-tables -fno-exceptions
56+
5057
#--- stmt_seq_macho.cpp
5158
#define ATTRIB extern "C" __attribute__((noinline))
5259
ATTRIB void function_empty_1() {}
@@ -96,3 +103,228 @@ int main() {
96103
length_error e("test");
97104
return sum;
98105
}
106+
107+
#--- stmt_seq_macho.ll
108+
; ModuleID = 'stmt_seq_macho.cpp'
109+
source_filename = "stmt_seq_macho.cpp"
110+
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-n32:64-S128-Fn32"
111+
target triple = "arm64-apple-macosx11.0.0"
112+
113+
%struct.length_error = type { i8 }
114+
115+
@.str = private unnamed_addr constant [5 x i8] c"test\00", align 1, !dbg !0
116+
117+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
118+
define void @function_empty_1() local_unnamed_addr #0 !dbg !16 {
119+
ret void, !dbg !19
120+
}
121+
122+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
123+
define void @function_empty_2() local_unnamed_addr #0 !dbg !20 {
124+
ret void, !dbg !21
125+
}
126+
127+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
128+
define void @function_empty_3() local_unnamed_addr #0 !dbg !22 {
129+
ret void, !dbg !23
130+
}
131+
132+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
133+
define range(i32 -2147483647, -2147483648) i32 @function1_copy1(i32 noundef %0) local_unnamed_addr #0 !dbg !24 {
134+
#dbg_value(i32 %0, !29, !DIExpression(), !30)
135+
%2 = add nsw i32 %0, 1, !dbg !31
136+
#dbg_value(i32 %2, !29, !DIExpression(), !30)
137+
ret i32 %2, !dbg !32
138+
}
139+
140+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
141+
define range(i32 -2147483644, -2147483648) i32 @function3_copy1(i32 noundef %0) local_unnamed_addr #0 !dbg !33 {
142+
#dbg_value(i32 %0, !35, !DIExpression(), !37)
143+
#dbg_value(i32 %0, !36, !DIExpression(DW_OP_plus_uconst, 3, DW_OP_stack_value), !37)
144+
%2 = add nsw i32 %0, 4, !dbg !38
145+
ret i32 %2, !dbg !39
146+
}
147+
148+
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
149+
declare void @llvm.lifetime.start.p0(i64 immarg, ptr captures(none)) #1
150+
151+
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
152+
declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #1
153+
154+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
155+
define range(i32 -2147483648, 2147483626) i32 @function2_copy1(i32 noundef %0) local_unnamed_addr #0 !dbg !40 {
156+
#dbg_value(i32 %0, !42, !DIExpression(), !43)
157+
%2 = add nsw i32 %0, -22, !dbg !44
158+
ret i32 %2, !dbg !45
159+
}
160+
161+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
162+
define range(i32 -2147483644, -2147483648) i32 @function3_copy2(i32 noundef %0) local_unnamed_addr #0 !dbg !46 {
163+
#dbg_value(i32 %0, !48, !DIExpression(), !50)
164+
#dbg_value(i32 %0, !49, !DIExpression(DW_OP_plus_uconst, 3, DW_OP_stack_value), !50)
165+
%2 = add nsw i32 %0, 4, !dbg !51
166+
ret i32 %2, !dbg !52
167+
}
168+
169+
; Function Attrs: minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none)
170+
define range(i32 -2147483648, 2147483626) i32 @function2_copy2(i32 noundef %0) local_unnamed_addr #0 !dbg !53 {
171+
#dbg_value(i32 %0, !55, !DIExpression(), !57)
172+
%2 = add nsw i32 %0, -22, !dbg !58
173+
#dbg_value(i32 %2, !56, !DIExpression(), !57)
174+
ret i32 %2, !dbg !59
175+
}
176+
177+
; Function Attrs: minsize mustprogress norecurse nounwind optsize ssp
178+
define noundef i32 @main() local_unnamed_addr #2 !dbg !60 {
179+
%1 = alloca %struct.length_error, align 1
180+
#dbg_value(i32 0, !64, !DIExpression(), !80)
181+
%2 = tail call i32 @function2_copy2(i32 noundef 3) #4, !dbg !81
182+
#dbg_value(i32 %2, !64, !DIExpression(), !80)
183+
%3 = tail call i32 @function3_copy2(i32 noundef 41) #4, !dbg !82
184+
%4 = add nsw i32 %3, %2, !dbg !83
185+
#dbg_value(i32 %4, !64, !DIExpression(), !80)
186+
%5 = tail call i32 @function2_copy1(i32 noundef 11) #4, !dbg !84
187+
%6 = add nsw i32 %4, %5, !dbg !85
188+
#dbg_value(i32 %6, !64, !DIExpression(), !80)
189+
%7 = tail call i32 @function1_copy1(i32 noundef 42) #4, !dbg !86
190+
%8 = add nsw i32 %6, %7, !dbg !87
191+
#dbg_value(i32 %8, !64, !DIExpression(), !80)
192+
call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %1) #5, !dbg !88
193+
#dbg_declare(ptr %1, !65, !DIExpression(), !89)
194+
%9 = call noundef ptr @_ZN12length_errorC1EPKc(ptr noundef nonnull align 1 dereferenceable(1) %1, ptr noundef nonnull @.str) #4, !dbg !89
195+
call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %1) #5, !dbg !90
196+
ret i32 %8, !dbg !91
197+
}
198+
199+
; Function Attrs: minsize mustprogress noinline nounwind optsize ssp
200+
define linkonce_odr noundef ptr @_ZN12length_errorC1EPKc(ptr noundef nonnull returned align 1 dereferenceable(1) %0, ptr noundef %1) unnamed_addr #3 !dbg !92 {
201+
#dbg_value(ptr %0, !94, !DIExpression(), !97)
202+
#dbg_value(ptr %1, !96, !DIExpression(), !97)
203+
%3 = tail call noundef ptr @_ZN12length_errorC2EPKc(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %1) #4, !dbg !98
204+
ret ptr %0, !dbg !99
205+
}
206+
207+
; Function Attrs: minsize mustprogress noinline nounwind optsize ssp
208+
define linkonce_odr noundef ptr @_ZN12length_errorC2EPKc(ptr noundef nonnull returned align 1 dereferenceable(1) %0, ptr noundef %1) unnamed_addr #3 !dbg !100 {
209+
#dbg_value(ptr %0, !102, !DIExpression(), !104)
210+
#dbg_value(ptr %1, !103, !DIExpression(), !104)
211+
ret ptr %0, !dbg !105
212+
}
213+
214+
attributes #0 = { minsize mustprogress nofree noinline norecurse nosync nounwind optsize ssp willreturn memory(none) "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="apple-m1" "target-features"="+aes,+altnzcv,+ccdp,+ccidx,+ccpp,+complxnum,+crc,+dit,+dotprod,+flagm,+fp-armv8,+fp16fml,+fptoint,+fullfp16,+jsconv,+lse,+neon,+pauth,+perfmon,+predres,+ras,+rcpc,+rdm,+sb,+sha2,+sha3,+specrestrict,+ssbs,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8a,+zcm-gpr64,+zcz" }
215+
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
216+
attributes #2 = { minsize mustprogress norecurse nounwind optsize ssp "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="apple-m1" "target-features"="+aes,+altnzcv,+ccdp,+ccidx,+ccpp,+complxnum,+crc,+dit,+dotprod,+flagm,+fp-armv8,+fp16fml,+fptoint,+fullfp16,+jsconv,+lse,+neon,+pauth,+perfmon,+predres,+ras,+rcpc,+rdm,+sb,+sha2,+sha3,+specrestrict,+ssbs,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8a,+zcm-gpr64,+zcz" }
217+
attributes #3 = { minsize mustprogress noinline nounwind optsize ssp "frame-pointer"="non-leaf" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="apple-m1" "target-features"="+aes,+altnzcv,+ccdp,+ccidx,+ccpp,+complxnum,+crc,+dit,+dotprod,+flagm,+fp-armv8,+fp16fml,+fptoint,+fullfp16,+jsconv,+lse,+neon,+pauth,+perfmon,+predres,+ras,+rcpc,+rdm,+sb,+sha2,+sha3,+specrestrict,+ssbs,+v8.1a,+v8.2a,+v8.3a,+v8.4a,+v8a,+zcm-gpr64,+zcz" }
218+
attributes #4 = { minsize optsize }
219+
attributes #5 = { nounwind }
220+
221+
!llvm.dbg.cu = !{!8}
222+
!llvm.module.flags = !{!10, !11, !12, !13, !14}
223+
!llvm.ident = !{!15}
224+
225+
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
226+
!1 = distinct !DIGlobalVariable(scope: null, file: !2, line: 46, type: !3, isLocal: true, isDefinition: true)
227+
!2 = !DIFile(filename: "stmt_seq_macho.cpp", directory: "/private/tmp/stmt_seq")
228+
!3 = !DICompositeType(tag: DW_TAG_array_type, baseType: !4, size: 40, elements: !6)
229+
!4 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !5)
230+
!5 = !DIBasicType(name: "char", size: 8, encoding: DW_ATE_signed_char)
231+
!6 = !{!7}
232+
!7 = !DISubrange(count: 5)
233+
!8 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus_14, file: !2, producer: "Facebook clang version 15.76.0 (https://git.internal.tfbnw.net/repos/git/ro/osmeta/external/llvm-project f40fa6dd3d840937180d389e8d6b902ac45f7134)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, globals: !9, splitDebugInlining: false, nameTableKind: Apple, sysroot: "/")
234+
!9 = !{!0}
235+
!10 = !{i32 7, !"Dwarf Version", i32 4}
236+
!11 = !{i32 2, !"Debug Info Version", i32 3}
237+
!12 = !{i32 1, !"wchar_size", i32 4}
238+
!13 = !{i32 8, !"PIC Level", i32 2}
239+
!14 = !{i32 7, !"frame-pointer", i32 1}
240+
!15 = !{!"Facebook clang version 15.76.0 (https://git.internal.tfbnw.net/repos/git/ro/osmeta/external/llvm-project f40fa6dd3d840937180d389e8d6b902ac45f7134)"}
241+
!16 = distinct !DISubprogram(name: "function_empty_1", scope: !2, file: !2, line: 2, type: !17, scopeLine: 2, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8)
242+
!17 = !DISubroutineType(types: !18)
243+
!18 = !{null}
244+
!19 = !DILocation(line: 2, column: 33, scope: !16)
245+
!20 = distinct !DISubprogram(name: "function_empty_2", scope: !2, file: !2, line: 3, type: !17, scopeLine: 3, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8)
246+
!21 = !DILocation(line: 3, column: 33, scope: !20)
247+
!22 = distinct !DISubprogram(name: "function_empty_3", scope: !2, file: !2, line: 4, type: !17, scopeLine: 4, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8)
248+
!23 = !DILocation(line: 4, column: 33, scope: !22)
249+
!24 = distinct !DISubprogram(name: "function1_copy1", scope: !2, file: !2, line: 6, type: !25, scopeLine: 6, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !28)
250+
!25 = !DISubroutineType(types: !26)
251+
!26 = !{!27, !27}
252+
!27 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
253+
!28 = !{!29}
254+
!29 = !DILocalVariable(name: "a", arg: 1, scope: !24, file: !2, line: 6, type: !27)
255+
!30 = !DILocation(line: 0, scope: !24)
256+
!31 = !DILocation(line: 7, column: 10, scope: !24)
257+
!32 = !DILocation(line: 7, column: 3, scope: !24)
258+
!33 = distinct !DISubprogram(name: "function3_copy1", scope: !2, file: !2, line: 10, type: !25, scopeLine: 10, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !34)
259+
!34 = !{!35, !36}
260+
!35 = !DILocalVariable(name: "a", arg: 1, scope: !33, file: !2, line: 10, type: !27)
261+
!36 = !DILocalVariable(name: "b", scope: !33, file: !2, line: 11, type: !27)
262+
!37 = !DILocation(line: 0, scope: !33)
263+
!38 = !DILocation(line: 12, column: 14, scope: !33)
264+
!39 = !DILocation(line: 12, column: 5, scope: !33)
265+
!40 = distinct !DISubprogram(name: "function2_copy1", scope: !2, file: !2, line: 15, type: !25, scopeLine: 15, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !41)
266+
!41 = !{!42}
267+
!42 = !DILocalVariable(name: "a", arg: 1, scope: !40, file: !2, line: 15, type: !27)
268+
!43 = !DILocation(line: 0, scope: !40)
269+
!44 = !DILocation(line: 16, column: 14, scope: !40)
270+
!45 = !DILocation(line: 16, column: 5, scope: !40)
271+
!46 = distinct !DISubprogram(name: "function3_copy2", scope: !2, file: !2, line: 19, type: !25, scopeLine: 19, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !47)
272+
!47 = !{!48, !49}
273+
!48 = !DILocalVariable(name: "a", arg: 1, scope: !46, file: !2, line: 19, type: !27)
274+
!49 = !DILocalVariable(name: "b", scope: !46, file: !2, line: 20, type: !27)
275+
!50 = !DILocation(line: 0, scope: !46)
276+
!51 = !DILocation(line: 21, column: 14, scope: !46)
277+
!52 = !DILocation(line: 21, column: 5, scope: !46)
278+
!53 = distinct !DISubprogram(name: "function2_copy2", scope: !2, file: !2, line: 24, type: !25, scopeLine: 24, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !54)
279+
!54 = !{!55, !56}
280+
!55 = !DILocalVariable(name: "a", arg: 1, scope: !53, file: !2, line: 24, type: !27)
281+
!56 = !DILocalVariable(name: "result", scope: !53, file: !2, line: 25, type: !27)
282+
!57 = !DILocation(line: 0, scope: !53)
283+
!58 = !DILocation(line: 25, column: 20, scope: !53)
284+
!59 = !DILocation(line: 26, column: 5, scope: !53)
285+
!60 = distinct !DISubprogram(name: "main", scope: !2, file: !2, line: 37, type: !61, scopeLine: 37, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, retainedNodes: !63)
286+
!61 = !DISubroutineType(types: !62)
287+
!62 = !{!27}
288+
!63 = !{!64, !65}
289+
!64 = !DILocalVariable(name: "sum", scope: !60, file: !2, line: 38, type: !27)
290+
!65 = !DILocalVariable(name: "e", scope: !60, file: !2, line: 46, type: !66)
291+
!66 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "length_error", file: !2, line: 33, size: 8, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !67, identifier: "_ZTS12length_error")
292+
!67 = !{!68, !76}
293+
!68 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !66, baseType: !69, extraData: i32 0)
294+
!69 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "logic_error", file: !2, line: 29, size: 8, flags: DIFlagTypePassByValue | DIFlagNonTrivial, elements: !70, identifier: "_ZTS11logic_error")
295+
!70 = !{!71}
296+
!71 = !DISubprogram(name: "logic_error", scope: !69, file: !2, line: 30, type: !72, scopeLine: 30, flags: DIFlagPrototyped, spFlags: DISPFlagOptimized)
297+
!72 = !DISubroutineType(types: !73)
298+
!73 = !{null, !74, !75}
299+
!74 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !69, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
300+
!75 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64)
301+
!76 = !DISubprogram(name: "length_error", scope: !66, file: !2, line: 34, type: !77, scopeLine: 34, flags: DIFlagExplicit | DIFlagPrototyped, spFlags: DISPFlagOptimized)
302+
!77 = !DISubroutineType(types: !78)
303+
!78 = !{null, !79, !75}
304+
!79 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !66, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)
305+
!80 = !DILocation(line: 0, scope: !60)
306+
!81 = !DILocation(line: 39, column: 12, scope: !60)
307+
!82 = !DILocation(line: 40, column: 12, scope: !60)
308+
!83 = !DILocation(line: 40, column: 9, scope: !60)
309+
!84 = !DILocation(line: 41, column: 12, scope: !60)
310+
!85 = !DILocation(line: 41, column: 9, scope: !60)
311+
!86 = !DILocation(line: 42, column: 12, scope: !60)
312+
!87 = !DILocation(line: 42, column: 9, scope: !60)
313+
!88 = !DILocation(line: 46, column: 5, scope: !60)
314+
!89 = !DILocation(line: 46, column: 18, scope: !60)
315+
!90 = !DILocation(line: 48, column: 1, scope: !60)
316+
!91 = !DILocation(line: 47, column: 5, scope: !60)
317+
!92 = distinct !DISubprogram(name: "length_error", linkageName: "_ZN12length_errorC1EPKc", scope: !66, file: !2, line: 34, type: !77, scopeLine: 34, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, declaration: !76, retainedNodes: !93)
318+
!93 = !{!94, !96}
319+
!94 = !DILocalVariable(name: "this", arg: 1, scope: !92, type: !95, flags: DIFlagArtificial | DIFlagObjectPointer)
320+
!95 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !66, size: 64)
321+
!96 = !DILocalVariable(name: "s", arg: 2, scope: !92, file: !2, line: 34, type: !75)
322+
!97 = !DILocation(line: 0, scope: !92)
323+
!98 = !DILocation(line: 34, column: 85, scope: !92)
324+
!99 = !DILocation(line: 34, column: 86, scope: !92)
325+
!100 = distinct !DISubprogram(name: "length_error", linkageName: "_ZN12length_errorC2EPKc", scope: !66, file: !2, line: 34, type: !77, scopeLine: 34, flags: DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !8, declaration: !76, retainedNodes: !101)
326+
!101 = !{!102, !103}
327+
!102 = !DILocalVariable(name: "this", arg: 1, scope: !100, type: !95, flags: DIFlagArtificial | DIFlagObjectPointer)
328+
!103 = !DILocalVariable(name: "s", arg: 2, scope: !100, file: !2, line: 34, type: !75)
329+
!104 = !DILocation(line: 0, scope: !100)
330+
!105 = !DILocation(line: 34, column: 86, scope: !100)

0 commit comments

Comments
 (0)