1; RUN: llc -O0 < %s | FileCheck %s 2; CHECK: @DEBUG_VALUE: foobar_func_block_invoke_0:mydata <- [SP+{{[0-9]+}}] 3; Radar 9331779 4target datalayout = "e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:32:64-v128:32:128-a0:0:32-n32" 5target triple = "thumbv7-apple-ios" 6 7%0 = type opaque 8%1 = type { [4 x i32] } 9%2 = type <{ i8*, i32, i32, i8*, %struct.Re*, i8*, %3*, %struct.my_struct* }> 10%3 = type opaque 11%struct.CP = type { float, float } 12%struct.CR = type { %struct.CP, %struct.CP } 13%struct.Re = type { i32, i32 } 14%struct.__block_byref_mydata = type { i8*, %struct.__block_byref_mydata*, i32, i32, i8*, i8*, %0* } 15%struct.my_struct = type opaque 16 17@"\01L_OBJC_SELECTOR_REFERENCES_13" = external hidden global i8*, section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip" 18@"OBJC_IVAR_$_MyWork._bounds" = external hidden global i32, section "__DATA, __objc_const", align 4 19@"OBJC_IVAR_$_MyWork._data" = external hidden global i32, section "__DATA, __objc_const", align 4 20@"\01L_OBJC_SELECTOR_REFERENCES_222" = external hidden global i8*, section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip" 21 22declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone 23 24declare i8* @objc_msgSend(i8*, i8*, ...) 25 26declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnone 27 28declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i32, i1) nounwind 29 30define hidden void @foobar_func_block_invoke_0(i8* %.block_descriptor, %0* %loadedMydata, [4 x i32] %bounds.coerce0, [4 x i32] %data.coerce0) ssp { 31 %1 = alloca %0*, align 4 32 %bounds = alloca %struct.CR, align 4 33 %data = alloca %struct.CR, align 4 34 call void @llvm.dbg.value(metadata i8* %.block_descriptor, i64 0, metadata !27, metadata !MDExpression()), !dbg !129 35 store %0* %loadedMydata, %0** %1, align 4 36 call void @llvm.dbg.declare(metadata %0** %1, metadata !130, metadata !MDExpression()), !dbg !131 37 %2 = bitcast %struct.CR* %bounds to %1* 38 %3 = getelementptr %1, %1* %2, i32 0, i32 0 39 store [4 x i32] %bounds.coerce0, [4 x i32]* %3 40 call void @llvm.dbg.declare(metadata %struct.CR* %bounds, metadata !132, metadata !MDExpression()), !dbg !133 41 %4 = bitcast %struct.CR* %data to %1* 42 %5 = getelementptr %1, %1* %4, i32 0, i32 0 43 store [4 x i32] %data.coerce0, [4 x i32]* %5 44 call void @llvm.dbg.declare(metadata %struct.CR* %data, metadata !134, metadata !MDExpression()), !dbg !135 45 %6 = bitcast i8* %.block_descriptor to %2* 46 %7 = getelementptr inbounds %2, %2* %6, i32 0, i32 6 47 call void @llvm.dbg.declare(metadata %2* %6, metadata !136, metadata !163), !dbg !137 48 call void @llvm.dbg.declare(metadata %2* %6, metadata !138, metadata !164), !dbg !137 49 call void @llvm.dbg.declare(metadata %2* %6, metadata !139, metadata !165), !dbg !140 50 %8 = load %0*, %0** %1, align 4, !dbg !141 51 %9 = load i8*, i8** @"\01L_OBJC_SELECTOR_REFERENCES_13", !dbg !141 52 %10 = bitcast %0* %8 to i8*, !dbg !141 53 %11 = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %10, i8* %9), !dbg !141 54 %12 = bitcast i8* %11 to %0*, !dbg !141 55 %13 = getelementptr inbounds %2, %2* %6, i32 0, i32 5, !dbg !141 56 %14 = load i8*, i8** %13, !dbg !141 57 %15 = bitcast i8* %14 to %struct.__block_byref_mydata*, !dbg !141 58 %16 = getelementptr inbounds %struct.__block_byref_mydata, %struct.__block_byref_mydata* %15, i32 0, i32 1, !dbg !141 59 %17 = load %struct.__block_byref_mydata*, %struct.__block_byref_mydata** %16, !dbg !141 60 %18 = getelementptr inbounds %struct.__block_byref_mydata, %struct.__block_byref_mydata* %17, i32 0, i32 6, !dbg !141 61 store %0* %12, %0** %18, align 4, !dbg !141 62 %19 = getelementptr inbounds %2, %2* %6, i32 0, i32 6, !dbg !143 63 %20 = load %3*, %3** %19, align 4, !dbg !143 64 %21 = load i32, i32* @"OBJC_IVAR_$_MyWork._data", !dbg !143 65 %22 = bitcast %3* %20 to i8*, !dbg !143 66 %23 = getelementptr inbounds i8, i8* %22, i32 %21, !dbg !143 67 %24 = bitcast i8* %23 to %struct.CR*, !dbg !143 68 %25 = bitcast %struct.CR* %24 to i8*, !dbg !143 69 %26 = bitcast %struct.CR* %data to i8*, !dbg !143 70 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %25, i8* %26, i32 16, i32 4, i1 false), !dbg !143 71 %27 = getelementptr inbounds %2, %2* %6, i32 0, i32 6, !dbg !144 72 %28 = load %3*, %3** %27, align 4, !dbg !144 73 %29 = load i32, i32* @"OBJC_IVAR_$_MyWork._bounds", !dbg !144 74 %30 = bitcast %3* %28 to i8*, !dbg !144 75 %31 = getelementptr inbounds i8, i8* %30, i32 %29, !dbg !144 76 %32 = bitcast i8* %31 to %struct.CR*, !dbg !144 77 %33 = bitcast %struct.CR* %32 to i8*, !dbg !144 78 %34 = bitcast %struct.CR* %bounds to i8*, !dbg !144 79 call void @llvm.memcpy.p0i8.p0i8.i32(i8* %33, i8* %34, i32 16, i32 4, i1 false), !dbg !144 80 %35 = getelementptr inbounds %2, %2* %6, i32 0, i32 6, !dbg !145 81 %36 = load %3*, %3** %35, align 4, !dbg !145 82 %37 = getelementptr inbounds %2, %2* %6, i32 0, i32 5, !dbg !145 83 %38 = load i8*, i8** %37, !dbg !145 84 %39 = bitcast i8* %38 to %struct.__block_byref_mydata*, !dbg !145 85 %40 = getelementptr inbounds %struct.__block_byref_mydata, %struct.__block_byref_mydata* %39, i32 0, i32 1, !dbg !145 86 %41 = load %struct.__block_byref_mydata*, %struct.__block_byref_mydata** %40, !dbg !145 87 %42 = getelementptr inbounds %struct.__block_byref_mydata, %struct.__block_byref_mydata* %41, i32 0, i32 6, !dbg !145 88 %43 = load %0*, %0** %42, align 4, !dbg !145 89 %44 = load i8*, i8** @"\01L_OBJC_SELECTOR_REFERENCES_222", !dbg !145 90 %45 = bitcast %3* %36 to i8*, !dbg !145 91 call void bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to void (i8*, i8*, %0*)*)(i8* %45, i8* %44, %0* %43), !dbg !145 92 ret void, !dbg !146 93} 94 95!llvm.dbg.cu = !{!0} 96!llvm.module.flags = !{!162} 97 98!0 = !MDCompileUnit(language: DW_LANG_ObjC, producer: "Apple clang version 2.1", isOptimized: false, runtimeVersion: 2, emissionKind: 1, file: !153, enums: !147, retainedTypes: !{}, subprograms: !148) 99!1 = !MDCompositeType(tag: DW_TAG_enumeration_type, line: 248, size: 32, align: 32, file: !160, scope: !0, elements: !3) 100!2 = !MDFile(filename: "header.h", directory: "/Volumes/Sandbox/llvm") 101!3 = !{!4} 102!4 = !MDEnumerator(name: "Ver1", value: 0) ; [ DW_TAG_enumerator ] 103!5 = !MDCompositeType(tag: DW_TAG_enumeration_type, name: "Mode", line: 79, size: 32, align: 32, file: !160, scope: !0, elements: !7) 104!6 = !MDFile(filename: "header2.h", directory: "/Volumes/Sandbox/llvm") 105!7 = !{!8} 106!8 = !MDEnumerator(name: "One", value: 0) ; [ DW_TAG_enumerator ] 107!9 = !MDCompositeType(tag: DW_TAG_enumeration_type, line: 15, size: 32, align: 32, file: !149, scope: !0, elements: !11) 108!10 = !MDFile(filename: "header3.h", directory: "/Volumes/Sandbox/llvm") 109!11 = !{!12, !13} 110!12 = !MDEnumerator(name: "Unknown", value: 0) ; [ DW_TAG_enumerator ] 111!13 = !MDEnumerator(name: "Known", value: 1) ; [ DW_TAG_enumerator ] 112!14 = !MDCompositeType(tag: DW_TAG_enumeration_type, line: 20, size: 32, align: 32, file: !150, scope: !0, elements: !16) 113!15 = !MDFile(filename: "Private.h", directory: "/Volumes/Sandbox/llvm") 114!16 = !{!17, !18} 115!17 = !MDEnumerator(name: "Single", value: 0) ; [ DW_TAG_enumerator ] 116!18 = !MDEnumerator(name: "Double", value: 1) ; [ DW_TAG_enumerator ] 117!19 = !MDCompositeType(tag: DW_TAG_enumeration_type, line: 14, size: 32, align: 32, file: !151, scope: !0, elements: !21) 118!20 = !MDFile(filename: "header4.h", directory: "/Volumes/Sandbox/llvm") 119!21 = !{!22} 120!22 = !MDEnumerator(name: "Eleven", value: 0) ; [ DW_TAG_enumerator ] 121!23 = !MDSubprogram(name: "foobar_func_block_invoke_0", line: 609, isLocal: true, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, scopeLine: 609, file: !152, scope: !24, type: !25, function: void (i8*, %0*, [4 x i32], [4 x i32])* @foobar_func_block_invoke_0) 122!24 = !MDFile(filename: "MyLibrary.m", directory: "/Volumes/Sandbox/llvm") 123!25 = !MDSubroutineType(types: !26) 124!26 = !{null} 125!27 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: ".block_descriptor", line: 609, arg: 1, flags: DIFlagArtificial, scope: !23, file: !24, type: !28) 126!28 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, scope: !0, baseType: !29) 127!29 = !MDCompositeType(tag: DW_TAG_structure_type, name: "__block_literal_14", line: 609, size: 256, align: 32, file: !152, scope: !24, elements: !30) 128!30 = !{!31, !33, !35, !36, !37, !48, !89, !124} 129!31 = !MDDerivedType(tag: DW_TAG_member, name: "__isa", line: 609, size: 32, align: 32, file: !152, scope: !24, baseType: !32) 130!32 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: null) 131!33 = !MDDerivedType(tag: DW_TAG_member, name: "__flags", line: 609, size: 32, align: 32, offset: 32, file: !152, scope: !24, baseType: !34) 132!34 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) 133!35 = !MDDerivedType(tag: DW_TAG_member, name: "__reserved", line: 609, size: 32, align: 32, offset: 64, file: !152, scope: !24, baseType: !34) 134!36 = !MDDerivedType(tag: DW_TAG_member, name: "__FuncPtr", line: 609, size: 32, align: 32, offset: 96, file: !152, scope: !24, baseType: !32) 135!37 = !MDDerivedType(tag: DW_TAG_member, name: "__descriptor", line: 609, size: 32, align: 32, offset: 128, file: !152, scope: !24, baseType: !38) 136!38 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !39) 137!39 = !MDCompositeType(tag: DW_TAG_structure_type, name: "__block_descriptor_withcopydispose", line: 307, size: 128, align: 32, file: !153, scope: !0, elements: !41) 138!40 = !MDFile(filename: "MyLibrary.i", directory: "/Volumes/Sandbox/llvm") 139!41 = !{!42, !44, !45, !47} 140!42 = !MDDerivedType(tag: DW_TAG_member, name: "reserved", line: 307, size: 32, align: 32, file: !153, scope: !40, baseType: !43) 141!43 = !MDBasicType(tag: DW_TAG_base_type, name: "long unsigned int", size: 32, align: 32, encoding: DW_ATE_unsigned) 142!44 = !MDDerivedType(tag: DW_TAG_member, name: "Size", line: 307, size: 32, align: 32, offset: 32, file: !153, scope: !40, baseType: !43) 143!45 = !MDDerivedType(tag: DW_TAG_member, name: "CopyFuncPtr", line: 307, size: 32, align: 32, offset: 64, file: !153, scope: !40, baseType: !46) 144!46 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !32) 145!47 = !MDDerivedType(tag: DW_TAG_member, name: "DestroyFuncPtr", line: 307, size: 32, align: 32, offset: 96, file: !153, scope: !40, baseType: !46) 146!48 = !MDDerivedType(tag: DW_TAG_member, name: "mydata", line: 609, size: 32, align: 32, offset: 160, file: !152, scope: !24, baseType: !49) 147!49 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, scope: !0, baseType: !50) 148!50 = !MDCompositeType(tag: DW_TAG_structure_type, size: 224, flags: DIFlagBlockByrefStruct, file: !152, scope: !24, elements: !51) 149!51 = !{!52, !53, !54, !55, !56, !57, !58} 150!52 = !MDDerivedType(tag: DW_TAG_member, name: "__isa", size: 32, align: 32, file: !152, scope: !24, baseType: !32) 151!53 = !MDDerivedType(tag: DW_TAG_member, name: "__forwarding", size: 32, align: 32, offset: 32, file: !152, scope: !24, baseType: !32) 152!54 = !MDDerivedType(tag: DW_TAG_member, name: "__flags", size: 32, align: 32, offset: 64, file: !152, scope: !24, baseType: !34) 153!55 = !MDDerivedType(tag: DW_TAG_member, name: "__size", size: 32, align: 32, offset: 96, file: !152, scope: !24, baseType: !34) 154!56 = !MDDerivedType(tag: DW_TAG_member, name: "__copy_helper", size: 32, align: 32, offset: 128, file: !152, scope: !24, baseType: !32) 155!57 = !MDDerivedType(tag: DW_TAG_member, name: "__destroy_helper", size: 32, align: 32, offset: 160, file: !152, scope: !24, baseType: !32) 156!58 = !MDDerivedType(tag: DW_TAG_member, name: "mydata", size: 32, align: 32, offset: 192, file: !152, scope: !24, baseType: !59) 157!59 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !60) 158!60 = !MDCompositeType(tag: DW_TAG_structure_type, name: "UIMydata", line: 26, size: 128, align: 32, runtimeLang: DW_LANG_ObjC, file: !154, scope: !24, elements: !62) 159!61 = !MDFile(filename: "header11.h", directory: "/Volumes/Sandbox/llvm") 160!62 = !{!63, !71, !75, !79} 161!63 = !MDDerivedType(tag: DW_TAG_inheritance, file: !61, baseType: !64) 162!64 = !MDCompositeType(tag: DW_TAG_structure_type, name: "NSO", line: 66, size: 32, align: 32, runtimeLang: DW_LANG_ObjC, file: !155, scope: !40, elements: !66) 163!65 = !MDFile(filename: "NSO.h", directory: "/Volumes/Sandbox/llvm") 164!66 = !{!67} 165!67 = !MDDerivedType(tag: DW_TAG_member, name: "isa", line: 67, size: 32, align: 32, flags: DIFlagProtected, file: !155, scope: !65, baseType: !68, extraData: !"") 166!68 = !MDDerivedType(tag: DW_TAG_typedef, name: "Class", line: 197, file: !153, scope: !0, baseType: !69) 167!69 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !70) 168!70 = !MDCompositeType(tag: DW_TAG_structure_type, name: "objc_class", flags: DIFlagFwdDecl, file: !153, scope: !0) 169!71 = !MDDerivedType(tag: DW_TAG_member, name: "_mydataRef", line: 28, size: 32, align: 32, offset: 32, file: !154, scope: !61, baseType: !72, extraData: !"") 170!72 = !MDDerivedType(tag: DW_TAG_typedef, name: "CFTypeRef", line: 313, file: !152, scope: !0, baseType: !73) 171!73 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !74) 172!74 = !MDDerivedType(tag: DW_TAG_const_type, scope: !0, baseType: null) 173!75 = !MDDerivedType(tag: DW_TAG_member, name: "_scale", line: 29, size: 32, align: 32, offset: 64, file: !154, scope: !61, baseType: !76, extraData: !"") 174!76 = !MDDerivedType(tag: DW_TAG_typedef, name: "Float", line: 89, file: !156, scope: !0, baseType: !78) 175!77 = !MDFile(filename: "header12.h", directory: "/Volumes/Sandbox/llvm") 176!78 = !MDBasicType(tag: DW_TAG_base_type, name: "float", size: 32, align: 32, encoding: DW_ATE_float) 177!79 = !MDDerivedType(tag: DW_TAG_member, name: "_mydataFlags", line: 37, size: 8, align: 8, offset: 96, file: !154, scope: !61, baseType: !80, extraData: !"") 178!80 = !MDCompositeType(tag: DW_TAG_structure_type, line: 30, size: 8, align: 8, file: !154, scope: !0, elements: !81) 179!81 = !{!82, !84, !85, !86, !87, !88} 180!82 = !MDDerivedType(tag: DW_TAG_member, name: "named", line: 31, size: 1, align: 32, file: !154, scope: !61, baseType: !83) 181!83 = !MDBasicType(tag: DW_TAG_base_type, name: "unsigned int", size: 32, align: 32, encoding: DW_ATE_unsigned) 182!84 = !MDDerivedType(tag: DW_TAG_member, name: "mydataO", line: 32, size: 3, align: 32, offset: 1, file: !154, scope: !61, baseType: !83) 183!85 = !MDDerivedType(tag: DW_TAG_member, name: "cached", line: 33, size: 1, align: 32, offset: 4, file: !154, scope: !61, baseType: !83) 184!86 = !MDDerivedType(tag: DW_TAG_member, name: "hasBeenCached", line: 34, size: 1, align: 32, offset: 5, file: !154, scope: !61, baseType: !83) 185!87 = !MDDerivedType(tag: DW_TAG_member, name: "hasPattern", line: 35, size: 1, align: 32, offset: 6, file: !154, scope: !61, baseType: !83) 186!88 = !MDDerivedType(tag: DW_TAG_member, name: "isCIMydata", line: 36, size: 1, align: 32, offset: 7, file: !154, scope: !61, baseType: !83) 187!89 = !MDDerivedType(tag: DW_TAG_member, name: "self", line: 609, size: 32, align: 32, offset: 192, file: !152, scope: !24, baseType: !90) 188!90 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !91) 189!91 = !MDCompositeType(tag: DW_TAG_structure_type, name: "MyWork", line: 36, size: 384, align: 32, runtimeLang: DW_LANG_ObjC, file: !152, scope: !40, elements: !92) 190!92 = !{!93, !98, !101, !107, !123} 191!93 = !MDDerivedType(tag: DW_TAG_inheritance, file: !152, scope: !91, baseType: !94) 192!94 = !MDCompositeType(tag: DW_TAG_structure_type, name: "twork", line: 43, size: 32, align: 32, runtimeLang: DW_LANG_ObjC, file: !157, scope: !40, elements: !96) 193!95 = !MDFile(filename: "header13.h", directory: "/Volumes/Sandbox/llvm") 194!96 = !{!97} 195!97 = !MDDerivedType(tag: DW_TAG_inheritance, file: !95, baseType: !64) 196!98 = !MDDerivedType(tag: DW_TAG_member, name: "_itemID", line: 38, size: 64, align: 32, offset: 32, flags: DIFlagPrivate, file: !152, scope: !24, baseType: !99, extraData: !"") 197!99 = !MDDerivedType(tag: DW_TAG_typedef, name: "uint64_t", line: 55, file: !153, scope: !0, baseType: !100) 198!100 = !MDBasicType(tag: DW_TAG_base_type, name: "long long unsigned int", size: 64, align: 32, encoding: DW_ATE_unsigned) 199!101 = !MDDerivedType(tag: DW_TAG_member, name: "_library", line: 39, size: 32, align: 32, offset: 96, flags: DIFlagPrivate, file: !152, scope: !24, baseType: !102, extraData: !"") 200!102 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !103) 201!103 = !MDCompositeType(tag: DW_TAG_structure_type, name: "MyLibrary2", line: 22, size: 32, align: 32, runtimeLang: DW_LANG_ObjC, file: !158, scope: !40, elements: !105) 202!104 = !MDFile(filename: "header14.h", directory: "/Volumes/Sandbox/llvm") 203!105 = !{!106} 204!106 = !MDDerivedType(tag: DW_TAG_inheritance, file: !104, baseType: !64) 205!107 = !MDDerivedType(tag: DW_TAG_member, name: "_bounds", line: 40, size: 128, align: 32, offset: 128, flags: DIFlagPrivate, file: !152, scope: !24, baseType: !108, extraData: !"") 206!108 = !MDDerivedType(tag: DW_TAG_typedef, name: "CR", line: 33, file: !153, scope: !0, baseType: !109) 207!109 = !MDCompositeType(tag: DW_TAG_structure_type, name: "CR", line: 29, size: 128, align: 32, file: !156, scope: !0, elements: !110) 208!110 = !{!111, !117} 209!111 = !MDDerivedType(tag: DW_TAG_member, name: "origin", line: 30, size: 64, align: 32, file: !156, scope: !77, baseType: !112) 210!112 = !MDDerivedType(tag: DW_TAG_typedef, name: "CP", line: 17, file: !156, scope: !0, baseType: !113) 211!113 = !MDCompositeType(tag: DW_TAG_structure_type, name: "CP", line: 13, size: 64, align: 32, file: !156, scope: !0, elements: !114) 212!114 = !{!115, !116} 213!115 = !MDDerivedType(tag: DW_TAG_member, name: "x", line: 14, size: 32, align: 32, file: !156, scope: !77, baseType: !76) 214!116 = !MDDerivedType(tag: DW_TAG_member, name: "y", line: 15, size: 32, align: 32, offset: 32, file: !156, scope: !77, baseType: !76) 215!117 = !MDDerivedType(tag: DW_TAG_member, name: "size", line: 31, size: 64, align: 32, offset: 64, file: !156, scope: !77, baseType: !118) 216!118 = !MDDerivedType(tag: DW_TAG_typedef, name: "Size", line: 25, file: !156, scope: !0, baseType: !119) 217!119 = !MDCompositeType(tag: DW_TAG_structure_type, name: "Size", line: 21, size: 64, align: 32, file: !156, scope: !0, elements: !120) 218!120 = !{!121, !122} 219!121 = !MDDerivedType(tag: DW_TAG_member, name: "width", line: 22, size: 32, align: 32, file: !156, scope: !77, baseType: !76) 220!122 = !MDDerivedType(tag: DW_TAG_member, name: "height", line: 23, size: 32, align: 32, offset: 32, file: !156, scope: !77, baseType: !76) 221!123 = !MDDerivedType(tag: DW_TAG_member, name: "_data", line: 40, size: 128, align: 32, offset: 256, flags: DIFlagPrivate, file: !152, scope: !24, baseType: !108, extraData: !"") 222!124 = !MDDerivedType(tag: DW_TAG_member, name: "semi", line: 609, size: 32, align: 32, offset: 224, file: !152, scope: !24, baseType: !125) 223!125 = !MDDerivedType(tag: DW_TAG_typedef, name: "d_t", line: 35, file: !152, scope: !0, baseType: !126) 224!126 = !MDDerivedType(tag: DW_TAG_pointer_type, size: 32, align: 32, scope: !0, baseType: !127) 225!127 = !MDCompositeType(tag: DW_TAG_structure_type, name: "my_struct", line: 49, flags: DIFlagFwdDecl, file: !159, scope: !0) 226!128 = !MDFile(filename: "header15.h", directory: "/Volumes/Sandbox/llvm") 227!129 = !MDLocation(line: 609, column: 144, scope: !23) 228!130 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "loadedMydata", line: 609, arg: 2, scope: !23, file: !24, type: !59) 229!131 = !MDLocation(line: 609, column: 155, scope: !23) 230!132 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "bounds", line: 609, arg: 3, scope: !23, file: !24, type: !108) 231!133 = !MDLocation(line: 609, column: 175, scope: !23) 232!134 = !MDLocalVariable(tag: DW_TAG_arg_variable, name: "data", line: 609, arg: 4, scope: !23, file: !24, type: !108) 233!135 = !MDLocation(line: 609, column: 190, scope: !23) 234!136 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "mydata", line: 604, scope: !23, file: !24, type: !50) 235!137 = !MDLocation(line: 604, column: 49, scope: !23) 236!138 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "self", line: 604, scope: !23, file: !40, type: !90) 237!139 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "semi", line: 607, scope: !23, file: !24, type: !125) 238!140 = !MDLocation(line: 607, column: 30, scope: !23) 239!141 = !MDLocation(line: 610, column: 17, scope: !142) 240!142 = distinct !MDLexicalBlock(line: 609, column: 200, file: !152, scope: !23) 241!143 = !MDLocation(line: 611, column: 17, scope: !142) 242!144 = !MDLocation(line: 612, column: 17, scope: !142) 243!145 = !MDLocation(line: 613, column: 17, scope: !142) 244!146 = !MDLocation(line: 615, column: 13, scope: !142) 245!147 = !{!1, !1, !5, !5, !9, !14, !19, !19, !14, !14, !14, !19, !19, !19} 246!148 = !{!23} 247!149 = !MDFile(filename: "header3.h", directory: "/Volumes/Sandbox/llvm") 248!150 = !MDFile(filename: "Private.h", directory: "/Volumes/Sandbox/llvm") 249!151 = !MDFile(filename: "header4.h", directory: "/Volumes/Sandbox/llvm") 250!152 = !MDFile(filename: "MyLibrary.m", directory: "/Volumes/Sandbox/llvm") 251!153 = !MDFile(filename: "MyLibrary.i", directory: "/Volumes/Sandbox/llvm") 252!154 = !MDFile(filename: "header11.h", directory: "/Volumes/Sandbox/llvm") 253!155 = !MDFile(filename: "NSO.h", directory: "/Volumes/Sandbox/llvm") 254!156 = !MDFile(filename: "header12.h", directory: "/Volumes/Sandbox/llvm") 255!157 = !MDFile(filename: "header13.h", directory: "/Volumes/Sandbox/llvm") 256!158 = !MDFile(filename: "header14.h", directory: "/Volumes/Sandbox/llvm") 257!159 = !MDFile(filename: "header15.h", directory: "/Volumes/Sandbox/llvm") 258!160 = !MDFile(filename: "header.h", directory: "/Volumes/Sandbox/llvm") 259!161 = !{!"header2.h", !"/Volumes/Sandbox/llvm"} 260!162 = !{i32 1, !"Debug Info Version", i32 3} 261!163 = !MDExpression(DW_OP_plus, 20, DW_OP_deref, DW_OP_plus, 4, DW_OP_deref, DW_OP_plus, 24) 262!164 = !MDExpression(DW_OP_deref, DW_OP_plus, 24) 263!165 = !MDExpression(DW_OP_deref, DW_OP_plus, 28) 264