1*9880d681SAndroid Build Coastguard Worker; RUN: llc -disable-fp-elim -O0 -filetype=obj < %s | llvm-dwarfdump - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker; Test that a variable with multiple entries in the MMI table makes it into the 3*9880d681SAndroid Build Coastguard Worker; debug info. 4*9880d681SAndroid Build Coastguard Worker; 5*9880d681SAndroid Build Coastguard Worker; CHECK: DW_TAG_inlined_subroutine 6*9880d681SAndroid Build Coastguard Worker; CHECK: "_Z3f111A" 7*9880d681SAndroid Build Coastguard Worker; CHECK: DW_TAG_formal_parameter 8*9880d681SAndroid Build Coastguard Worker; CHECK: DW_AT_location [DW_FORM_block1] (<0x0b> 91 51 9d 78 08 91 4a 9d 38 88 01 ) 9*9880d681SAndroid Build Coastguard Worker; -- fbreg -47, bit-piece 120 8 , fbreg -54, bit-piece 56 136 ------^ 10*9880d681SAndroid Build Coastguard Worker; CHECK: DW_AT_abstract_origin {{.*}} "p1" 11*9880d681SAndroid Build Coastguard Worker; 12*9880d681SAndroid Build Coastguard Worker; long a; 13*9880d681SAndroid Build Coastguard Worker; struct A { 14*9880d681SAndroid Build Coastguard Worker; bool x4; 15*9880d681SAndroid Build Coastguard Worker; void *x5; 16*9880d681SAndroid Build Coastguard Worker; bool x6; 17*9880d681SAndroid Build Coastguard Worker; }; 18*9880d681SAndroid Build Coastguard Worker; int *b; 19*9880d681SAndroid Build Coastguard Worker; struct B { 20*9880d681SAndroid Build Coastguard Worker; B(long); 21*9880d681SAndroid Build Coastguard Worker; ~B(); 22*9880d681SAndroid Build Coastguard Worker; }; 23*9880d681SAndroid Build Coastguard Worker; void f9(A); 24*9880d681SAndroid Build Coastguard Worker; void f13(A p1) { 25*9880d681SAndroid Build Coastguard Worker; b = (int *)__builtin_operator_new(a); 26*9880d681SAndroid Build Coastguard Worker; f9(p1); 27*9880d681SAndroid Build Coastguard Worker; } 28*9880d681SAndroid Build Coastguard Worker; void f11(A p1) { f13(p1); } 29*9880d681SAndroid Build Coastguard Worker; void f16() { 30*9880d681SAndroid Build Coastguard Worker; A c; 31*9880d681SAndroid Build Coastguard Worker; B d(a); 32*9880d681SAndroid Build Coastguard Worker; c.x6 = c.x4 = true; 33*9880d681SAndroid Build Coastguard Worker; f11(c); 34*9880d681SAndroid Build Coastguard Worker; } 35*9880d681SAndroid Build Coastguard Worker; ModuleID = 'test.cpp' 36*9880d681SAndroid Build Coastguard Workertarget datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" 37*9880d681SAndroid Build Coastguard Workertarget triple = "aarch64-apple-ios" 38*9880d681SAndroid Build Coastguard Worker 39*9880d681SAndroid Build Coastguard Worker%struct.A = type { i8, i8*, i8 } 40*9880d681SAndroid Build Coastguard Worker%struct.B = type { i8 } 41*9880d681SAndroid Build Coastguard Worker 42*9880d681SAndroid Build Coastguard Worker@a = global i64 0, align 8 43*9880d681SAndroid Build Coastguard Worker@b = global i32* null, align 8 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdefine void @_Z3f131A(%struct.A* nocapture readonly %p1) #0 !dbg !25 { 46*9880d681SAndroid Build Coastguard Workerentry: 47*9880d681SAndroid Build Coastguard Worker %agg.tmp = alloca %struct.A, align 8 48*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.declare(metadata %struct.A* %p1, metadata !30, metadata !46), !dbg !47 49*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* @a, align 8, !dbg !48, !tbaa !49 50*9880d681SAndroid Build Coastguard Worker %call = tail call noalias i8* @_Znwm(i64 %0) #5, !dbg !53 51*9880d681SAndroid Build Coastguard Worker store i8* %call, i8** bitcast (i32** @b to i8**), align 8, !dbg !54, !tbaa !55 52*9880d681SAndroid Build Coastguard Worker %1 = getelementptr inbounds %struct.A, %struct.A* %agg.tmp, i64 0, i32 0, !dbg !57 53*9880d681SAndroid Build Coastguard Worker %2 = getelementptr inbounds %struct.A, %struct.A* %p1, i64 0, i32 0, !dbg !57 54*9880d681SAndroid Build Coastguard Worker call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 24, i32 8, i1 false), !dbg !57, !tbaa.struct !58 55*9880d681SAndroid Build Coastguard Worker call void @_Z2f91A(%struct.A* %agg.tmp), !dbg !61 56*9880d681SAndroid Build Coastguard Worker ret void, !dbg !62 57*9880d681SAndroid Build Coastguard Worker} 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 60*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.dbg.declare(metadata, metadata, metadata) #1 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Worker; Function Attrs: nobuiltin 63*9880d681SAndroid Build Coastguard Workerdeclare noalias i8* @_Znwm(i64) #2 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdeclare void @_Z2f91A(%struct.A*) #0 66*9880d681SAndroid Build Coastguard Worker 67*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 68*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #3 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Workerdefine void @_Z3f111A(%struct.A* nocapture readonly %p1) #0 !dbg !31 { 71*9880d681SAndroid Build Coastguard Workerentry: 72*9880d681SAndroid Build Coastguard Worker %agg.tmp.i = alloca %struct.A, align 8 73*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.declare(metadata %struct.A* %p1, metadata !33, metadata !46), !dbg !63 74*9880d681SAndroid Build Coastguard Worker %0 = getelementptr inbounds %struct.A, %struct.A* %p1, i64 0, i32 0, !dbg !64 75*9880d681SAndroid Build Coastguard Worker %1 = getelementptr inbounds %struct.A, %struct.A* %agg.tmp.i, i64 0, i32 0, !dbg !65 76*9880d681SAndroid Build Coastguard Worker call void @llvm.lifetime.start(i64 24, i8* %1), !dbg !65 77*9880d681SAndroid Build Coastguard Worker %2 = load i64, i64* @a, align 8, !dbg !67, !tbaa !49 78*9880d681SAndroid Build Coastguard Worker %call.i = tail call noalias i8* @_Znwm(i64 %2) #5, !dbg !68 79*9880d681SAndroid Build Coastguard Worker store i8* %call.i, i8** bitcast (i32** @b to i8**), align 8, !dbg !69, !tbaa !55 80*9880d681SAndroid Build Coastguard Worker call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 24, i32 8, i1 false), !dbg !70 81*9880d681SAndroid Build Coastguard Worker call void @_Z2f91A(%struct.A* %agg.tmp.i), !dbg !71 82*9880d681SAndroid Build Coastguard Worker call void @llvm.lifetime.end(i64 24, i8* %1), !dbg !72 83*9880d681SAndroid Build Coastguard Worker ret void, !dbg !73 84*9880d681SAndroid Build Coastguard Worker} 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Workerdefine void @_Z3f16v() #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !34 { 87*9880d681SAndroid Build Coastguard Workerentry: 88*9880d681SAndroid Build Coastguard Worker %agg.tmp.i.i = alloca %struct.A, align 8 89*9880d681SAndroid Build Coastguard Worker %d = alloca %struct.B, align 1 90*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.2 = alloca [15 x i8], align 1 91*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.4 = alloca [7 x i8], align 1 92*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.declare(metadata [15 x i8]* %agg.tmp.sroa.2, metadata !74, metadata !76), !dbg !77 93*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.declare(metadata [7 x i8]* %agg.tmp.sroa.4, metadata !74, metadata !78), !dbg !77 94*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.declare(metadata %struct.A* undef, metadata !38, metadata !79), !dbg !80 95*9880d681SAndroid Build Coastguard Worker %0 = load i64, i64* @a, align 8, !dbg !81, !tbaa !49 96*9880d681SAndroid Build Coastguard Worker tail call void @llvm.dbg.value(metadata %struct.B* %d, i64 0, metadata !39, metadata !79), !dbg !82 97*9880d681SAndroid Build Coastguard Worker %call = call %struct.B* @_ZN1BC1El(%struct.B* %d, i64 %0), !dbg !82 98*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.value(metadata i8 1, i64 0, metadata !38, metadata !83), !dbg !80 99*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.value(metadata i8 1, i64 0, metadata !38, metadata !84), !dbg !80 100*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.value(metadata i8 1, i64 0, metadata !74, metadata !83), !dbg !77 101*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.value(metadata i8 1, i64 0, metadata !74, metadata !84), !dbg !77 102*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.declare(metadata %struct.A* undef, metadata !74, metadata !46), !dbg !77 103*9880d681SAndroid Build Coastguard Worker %1 = getelementptr inbounds %struct.A, %struct.A* %agg.tmp.i.i, i64 0, i32 0, !dbg !85 104*9880d681SAndroid Build Coastguard Worker call void @llvm.lifetime.start(i64 24, i8* %1), !dbg !85 105*9880d681SAndroid Build Coastguard Worker %2 = load i64, i64* @a, align 8, !dbg !87, !tbaa !49 106*9880d681SAndroid Build Coastguard Worker %call.i.i5 = invoke noalias i8* @_Znwm(i64 %2) #5 107*9880d681SAndroid Build Coastguard Worker to label %call.i.i.noexc unwind label %lpad, !dbg !88 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Workercall.i.i.noexc: ; preds = %entry 110*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.4.17..sroa_idx = getelementptr inbounds [7 x i8], [7 x i8]* %agg.tmp.sroa.4, i64 0, i64 0, !dbg !89 111*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.2.1..sroa_idx = getelementptr inbounds [15 x i8], [15 x i8]* %agg.tmp.sroa.2, i64 0, i64 0, !dbg !89 112*9880d681SAndroid Build Coastguard Worker store i8* %call.i.i5, i8** bitcast (i32** @b to i8**), align 8, !dbg !90, !tbaa !55 113*9880d681SAndroid Build Coastguard Worker store i8 1, i8* %1, align 8, !dbg !91 114*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.2.0..sroa_raw_idx = getelementptr inbounds i8, i8* %1, i64 1, !dbg !91 115*9880d681SAndroid Build Coastguard Worker call void @llvm.memcpy.p0i8.p0i8.i64(i8* %agg.tmp.sroa.2.0..sroa_raw_idx, i8* %agg.tmp.sroa.2.1..sroa_idx, i64 15, i32 1, i1 false), !dbg !91 116*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.3.0..sroa_idx = getelementptr inbounds %struct.A, %struct.A* %agg.tmp.i.i, i64 0, i32 2, !dbg !91 117*9880d681SAndroid Build Coastguard Worker store i8 1, i8* %agg.tmp.sroa.3.0..sroa_idx, align 8, !dbg !91 118*9880d681SAndroid Build Coastguard Worker %agg.tmp.sroa.4.0..sroa_raw_idx = getelementptr inbounds i8, i8* %1, i64 17, !dbg !91 119*9880d681SAndroid Build Coastguard Worker call void @llvm.memcpy.p0i8.p0i8.i64(i8* %agg.tmp.sroa.4.0..sroa_raw_idx, i8* %agg.tmp.sroa.4.17..sroa_idx, i64 7, i32 1, i1 false), !dbg !91 120*9880d681SAndroid Build Coastguard Worker invoke void @_Z2f91A(%struct.A* %agg.tmp.i.i) 121*9880d681SAndroid Build Coastguard Worker to label %invoke.cont unwind label %lpad, !dbg !92 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerinvoke.cont: ; preds = %call.i.i.noexc 124*9880d681SAndroid Build Coastguard Worker call void @llvm.lifetime.end(i64 24, i8* %1), !dbg !93 125*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.value(metadata %struct.B* %d, i64 0, metadata !39, metadata !79), !dbg !82 126*9880d681SAndroid Build Coastguard Worker %call1 = call %struct.B* @_ZN1BD1Ev(%struct.B* %d) #3, !dbg !94 127*9880d681SAndroid Build Coastguard Worker ret void, !dbg !94 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerlpad: ; preds = %call.i.i.noexc, %entry 130*9880d681SAndroid Build Coastguard Worker %3 = landingpad { i8*, i32 } 131*9880d681SAndroid Build Coastguard Worker cleanup, !dbg !94 132*9880d681SAndroid Build Coastguard Worker call void @llvm.dbg.value(metadata %struct.B* %d, i64 0, metadata !39, metadata !79), !dbg !82 133*9880d681SAndroid Build Coastguard Worker %call2 = call %struct.B* @_ZN1BD1Ev(%struct.B* %d) #3, !dbg !94 134*9880d681SAndroid Build Coastguard Worker resume { i8*, i32 } %3, !dbg !94 135*9880d681SAndroid Build Coastguard Worker} 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdeclare %struct.B* @_ZN1BC1El(%struct.B*, i64) 138*9880d681SAndroid Build Coastguard Worker 139*9880d681SAndroid Build Coastguard Workerdeclare i32 @__gxx_personality_v0(...) 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 142*9880d681SAndroid Build Coastguard Workerdeclare %struct.B* @_ZN1BD1Ev(%struct.B*) #4 143*9880d681SAndroid Build Coastguard Worker 144*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 145*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1 146*9880d681SAndroid Build Coastguard Worker 147*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 148*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.lifetime.start(i64, i8* nocapture) #3 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 151*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.lifetime.end(i64, i8* nocapture) #3 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind readnone } 154*9880d681SAndroid Build Coastguard Workerattributes #2 = { nobuiltin } 155*9880d681SAndroid Build Coastguard Workerattributes #3 = { nounwind } 156*9880d681SAndroid Build Coastguard Workerattributes #4 = { nounwind } 157*9880d681SAndroid Build Coastguard Workerattributes #5 = { builtin } 158*9880d681SAndroid Build Coastguard Worker 159*9880d681SAndroid Build Coastguard Worker!llvm.dbg.cu = !{!0} 160*9880d681SAndroid Build Coastguard Worker!llvm.module.flags = !{!43, !44} 161*9880d681SAndroid Build Coastguard Worker!llvm.ident = !{!45} 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Worker!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, producer: "clang version 3.7.0 ", isOptimized: true, emissionKind: FullDebug, file: !1, enums: !2, retainedTypes: !3, globals: !40, imports: !2) 164*9880d681SAndroid Build Coastguard Worker!1 = !DIFile(filename: "<stdin>", directory: "") 165*9880d681SAndroid Build Coastguard Worker!2 = !{} 166*9880d681SAndroid Build Coastguard Worker!3 = !{!4, !12, !14} 167*9880d681SAndroid Build Coastguard Worker!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "A", line: 2, size: 192, align: 64, file: !5, elements: !6, identifier: "_ZTS1A") 168*9880d681SAndroid Build Coastguard Worker!5 = !DIFile(filename: "test.cpp", directory: "") 169*9880d681SAndroid Build Coastguard Worker!6 = !{!7, !9, !11} 170*9880d681SAndroid Build Coastguard Worker!7 = !DIDerivedType(tag: DW_TAG_member, name: "x4", line: 3, size: 8, align: 8, file: !5, scope: !4, baseType: !8) 171*9880d681SAndroid Build Coastguard Worker!8 = !DIBasicType(tag: DW_TAG_base_type, name: "bool", size: 8, align: 8, encoding: DW_ATE_boolean) 172*9880d681SAndroid Build Coastguard Worker!9 = !DIDerivedType(tag: DW_TAG_member, name: "x5", line: 4, size: 64, align: 64, offset: 64, file: !5, scope: !4, baseType: !10) 173*9880d681SAndroid Build Coastguard Worker!10 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: null) 174*9880d681SAndroid Build Coastguard Worker!11 = !DIDerivedType(tag: DW_TAG_member, name: "x6", line: 5, size: 8, align: 8, offset: 128, file: !5, scope: !4, baseType: !8) 175*9880d681SAndroid Build Coastguard Worker!12 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, baseType: !13) 176*9880d681SAndroid Build Coastguard Worker!13 = !DIBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) 177*9880d681SAndroid Build Coastguard Worker!14 = !DICompositeType(tag: DW_TAG_structure_type, name: "B", line: 8, size: 8, align: 8, file: !5, elements: !15, identifier: "_ZTS1B") 178*9880d681SAndroid Build Coastguard Worker!15 = !{!16, !21} 179*9880d681SAndroid Build Coastguard Worker!16 = !DISubprogram(name: "B", line: 9, isLocal: false, isDefinition: false, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 9, file: !5, scope: !14, type: !17) 180*9880d681SAndroid Build Coastguard Worker!17 = !DISubroutineType(types: !18) 181*9880d681SAndroid Build Coastguard Worker!18 = !{null, !19, !20} 182*9880d681SAndroid Build Coastguard Worker!19 = !DIDerivedType(tag: DW_TAG_pointer_type, size: 64, align: 64, flags: DIFlagArtificial | DIFlagObjectPointer, baseType: !14) 183*9880d681SAndroid Build Coastguard Worker!20 = !DIBasicType(tag: DW_TAG_base_type, name: "long int", size: 64, align: 64, encoding: DW_ATE_signed) 184*9880d681SAndroid Build Coastguard Worker!21 = !DISubprogram(name: "~B", line: 10, isLocal: false, isDefinition: false, flags: DIFlagPrototyped, isOptimized: true, scopeLine: 10, file: !5, scope: !14, type: !22) 185*9880d681SAndroid Build Coastguard Worker!22 = !DISubroutineType(types: !23) 186*9880d681SAndroid Build Coastguard Worker!23 = !{null, !19} 187*9880d681SAndroid Build Coastguard Worker!25 = distinct !DISubprogram(name: "f13", linkageName: "_Z3f131A", line: 13, isLocal: false, isDefinition: true, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 13, file: !5, scope: !26, type: !27, variables: !29) 188*9880d681SAndroid Build Coastguard Worker!26 = !DIFile(filename: "test.cpp", directory: "") 189*9880d681SAndroid Build Coastguard Worker!27 = !DISubroutineType(types: !28) 190*9880d681SAndroid Build Coastguard Worker!28 = !{null, !4} 191*9880d681SAndroid Build Coastguard Worker!29 = !{!30} 192*9880d681SAndroid Build Coastguard Worker!30 = !DILocalVariable(name: "p1", line: 13, arg: 1, scope: !25, file: !26, type: !4) 193*9880d681SAndroid Build Coastguard Worker!31 = distinct !DISubprogram(name: "f11", linkageName: "_Z3f111A", line: 17, isLocal: false, isDefinition: true, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 17, file: !5, scope: !26, type: !27, variables: !32) 194*9880d681SAndroid Build Coastguard Worker!32 = !{!33} 195*9880d681SAndroid Build Coastguard Worker!33 = !DILocalVariable(name: "p1", line: 17, arg: 1, scope: !31, file: !26, type: !4) 196*9880d681SAndroid Build Coastguard Worker!34 = distinct !DISubprogram(name: "f16", linkageName: "_Z3f16v", line: 18, isLocal: false, isDefinition: true, flags: DIFlagPrototyped, isOptimized: true, unit: !0, scopeLine: 18, file: !5, scope: !26, type: !35, variables: !37) 197*9880d681SAndroid Build Coastguard Worker!35 = !DISubroutineType(types: !36) 198*9880d681SAndroid Build Coastguard Worker!36 = !{null} 199*9880d681SAndroid Build Coastguard Worker!37 = !{!38, !39} 200*9880d681SAndroid Build Coastguard Worker!38 = !DILocalVariable(name: "c", line: 19, scope: !34, file: !26, type: !4) 201*9880d681SAndroid Build Coastguard Worker!39 = !DILocalVariable(name: "d", line: 20, scope: !34, file: !26, type: !14) 202*9880d681SAndroid Build Coastguard Worker!40 = !{!41, !42} 203*9880d681SAndroid Build Coastguard Worker!41 = !DIGlobalVariable(name: "a", line: 1, isLocal: false, isDefinition: true, scope: null, file: !26, type: !20, variable: i64* @a) 204*9880d681SAndroid Build Coastguard Worker!42 = !DIGlobalVariable(name: "b", line: 7, isLocal: false, isDefinition: true, scope: null, file: !26, type: !12, variable: i32** @b) 205*9880d681SAndroid Build Coastguard Worker!43 = !{i32 2, !"Dwarf Version", i32 2} 206*9880d681SAndroid Build Coastguard Worker!44 = !{i32 2, !"Debug Info Version", i32 3} 207*9880d681SAndroid Build Coastguard Worker!45 = !{!"clang version 3.7.0 "} 208*9880d681SAndroid Build Coastguard Worker!46 = !DIExpression(DW_OP_deref) 209*9880d681SAndroid Build Coastguard Worker!47 = !DILocation(line: 13, column: 12, scope: !25) 210*9880d681SAndroid Build Coastguard Worker!48 = !DILocation(line: 14, column: 37, scope: !25) 211*9880d681SAndroid Build Coastguard Worker!49 = !{!50, !50, i64 0} 212*9880d681SAndroid Build Coastguard Worker!50 = !{!"long", !51, i64 0} 213*9880d681SAndroid Build Coastguard Worker!51 = !{!"omnipotent char", !52, i64 0} 214*9880d681SAndroid Build Coastguard Worker!52 = !{!"Simple C/C++ TBAA"} 215*9880d681SAndroid Build Coastguard Worker!53 = !DILocation(line: 14, column: 14, scope: !25) 216*9880d681SAndroid Build Coastguard Worker!54 = !DILocation(line: 14, column: 5, scope: !25) 217*9880d681SAndroid Build Coastguard Worker!55 = !{!56, !56, i64 0} 218*9880d681SAndroid Build Coastguard Worker!56 = !{!"any pointer", !51, i64 0} 219*9880d681SAndroid Build Coastguard Worker!57 = !DILocation(line: 15, column: 6, scope: !25) 220*9880d681SAndroid Build Coastguard Worker!58 = !{i64 0, i64 1, !59, i64 8, i64 8, !55, i64 16, i64 1, !59} 221*9880d681SAndroid Build Coastguard Worker!59 = !{!60, !60, i64 0} 222*9880d681SAndroid Build Coastguard Worker!60 = !{!"bool", !51, i64 0} 223*9880d681SAndroid Build Coastguard Worker!61 = !DILocation(line: 15, column: 3, scope: !25) 224*9880d681SAndroid Build Coastguard Worker!62 = !DILocation(line: 16, column: 1, scope: !25) 225*9880d681SAndroid Build Coastguard Worker!63 = !DILocation(line: 17, column: 12, scope: !31) 226*9880d681SAndroid Build Coastguard Worker!64 = !DILocation(line: 17, column: 22, scope: !31) 227*9880d681SAndroid Build Coastguard Worker!65 = !DILocation(line: 13, column: 12, scope: !25, inlinedAt: !66) 228*9880d681SAndroid Build Coastguard Worker!66 = distinct !DILocation(line: 17, column: 18, scope: !31) 229*9880d681SAndroid Build Coastguard Worker!67 = !DILocation(line: 14, column: 37, scope: !25, inlinedAt: !66) 230*9880d681SAndroid Build Coastguard Worker!68 = !DILocation(line: 14, column: 14, scope: !25, inlinedAt: !66) 231*9880d681SAndroid Build Coastguard Worker!69 = !DILocation(line: 14, column: 5, scope: !25, inlinedAt: !66) 232*9880d681SAndroid Build Coastguard Worker!70 = !DILocation(line: 15, column: 6, scope: !25, inlinedAt: !66) 233*9880d681SAndroid Build Coastguard Worker!71 = !DILocation(line: 15, column: 3, scope: !25, inlinedAt: !66) 234*9880d681SAndroid Build Coastguard Worker!72 = !DILocation(line: 16, column: 1, scope: !25, inlinedAt: !66) 235*9880d681SAndroid Build Coastguard Worker!73 = !DILocation(line: 17, column: 27, scope: !31) 236*9880d681SAndroid Build Coastguard Worker!74 = !DILocalVariable(name: "p1", line: 17, arg: 1, scope: !31, file: !26, type: !4) 237*9880d681SAndroid Build Coastguard Worker!75 = distinct !DILocation(line: 22, column: 3, scope: !34) 238*9880d681SAndroid Build Coastguard Worker!76 = !DIExpression(DW_OP_bit_piece, 8, 120) 239*9880d681SAndroid Build Coastguard Worker!77 = !DILocation(line: 17, column: 12, scope: !31, inlinedAt: !75) 240*9880d681SAndroid Build Coastguard Worker!78 = !DIExpression(DW_OP_bit_piece, 136, 56) 241*9880d681SAndroid Build Coastguard Worker!79 = !DIExpression(DW_OP_deref) 242*9880d681SAndroid Build Coastguard Worker!80 = !DILocation(line: 19, column: 5, scope: !34) 243*9880d681SAndroid Build Coastguard Worker!81 = !DILocation(line: 20, column: 7, scope: !34) 244*9880d681SAndroid Build Coastguard Worker!82 = !DILocation(line: 20, column: 5, scope: !34) 245*9880d681SAndroid Build Coastguard Worker!83 = !DIExpression(DW_OP_bit_piece, 0, 8) 246*9880d681SAndroid Build Coastguard Worker!84 = !DIExpression(DW_OP_bit_piece, 128, 8) 247*9880d681SAndroid Build Coastguard Worker!85 = !DILocation(line: 13, column: 12, scope: !25, inlinedAt: !86) 248*9880d681SAndroid Build Coastguard Worker!86 = distinct !DILocation(line: 17, column: 18, scope: !31, inlinedAt: !75) 249*9880d681SAndroid Build Coastguard Worker!87 = !DILocation(line: 14, column: 37, scope: !25, inlinedAt: !86) 250*9880d681SAndroid Build Coastguard Worker!88 = !DILocation(line: 14, column: 14, scope: !25, inlinedAt: !86) 251*9880d681SAndroid Build Coastguard Worker!89 = !DILocation(line: 22, column: 7, scope: !34) 252*9880d681SAndroid Build Coastguard Worker!90 = !DILocation(line: 14, column: 5, scope: !25, inlinedAt: !86) 253*9880d681SAndroid Build Coastguard Worker!91 = !DILocation(line: 15, column: 6, scope: !25, inlinedAt: !86) 254*9880d681SAndroid Build Coastguard Worker!92 = !DILocation(line: 15, column: 3, scope: !25, inlinedAt: !86) 255*9880d681SAndroid Build Coastguard Worker!93 = !DILocation(line: 16, column: 1, scope: !25, inlinedAt: !86) 256*9880d681SAndroid Build Coastguard Worker!94 = !DILocation(line: 23, column: 1, scope: !34) 257