; RUN: llc -O0 -fast-isel -filetype=obj -o - %s | llvm-dwarfdump -v - | FileCheck %s
;
; Derived from (clang -O0 -g -fsanitize=address -fobjc-arc)
;   @protocol NSObject
;   @end
;   @interface NSObject<NSObject>{}
;   + (instancetype)alloc;
;   @end
;   struct CGSize {
;     double width;
;     double height;
;   };
;   typedef struct CGSize CGSize;
;   @interface Object : NSObject
;   - (instancetype)initWithSize:(CGSize)size;
;   - (id)aMessage;
;   @end
;   @implementation MyObject
;   + (id)doWithSize:(CGSize)imageSize andObject:(id)object {
;     return [object aMessage];
;   }
;   @end
;
; CHECK: .debug_info contents:
; CHECK: DW_TAG_subprogram
; CHECK-NEXT:   DW_AT_low_pc [DW_FORM_addr]     (0x0000000000000000)
; CHECK-NEXT:   DW_AT_high_pc [DW_FORM_addr]    ([[FN_END:.*]])
; CHECK: "_cmd"
; CHECK: DW_TAG_formal_parameter
; CHECK-NEXT: DW_AT_location
; CHECK-NEXT:   [0x{{0*}}, 0x{{.*}}):
; CHECK-NOT:    DW_AT_
; CHECK:        [0x{{.*}}, [[FN_END]]):
; CHECK-NEXT: DW_AT_name {{.*}}"imageSize"

; ModuleID = 'm.m'
source_filename = "m.m"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-ios"

%0 = type opaque
%struct._class_t = type { %struct._class_t*, %struct._class_t*, %struct._objc_cache*, i8* (i8*, i8*)**, %struct._class_ro_t* }
%struct._objc_cache = type opaque
%struct._class_ro_t = type { i32, i32, i32, i8*, i8*, %struct.__method_list_t*, %struct._objc_protocol_list*, %struct._ivar_list_t*, i8*, %struct._prop_list_t* }
%struct.__method_list_t = type { i32, i32, [0 x %struct._objc_method] }
%struct._objc_method = type { i8*, i8*, i8* }
%struct._objc_protocol_list = type { i64, [0 x %struct._protocol_t*] }
%struct._protocol_t = type { i8*, i8*, %struct._objc_protocol_list*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct._prop_list_t*, i32, i32, i8**, i8*, %struct._prop_list_t* }
%struct._ivar_list_t = type { i32, i32, [0 x %struct._ivar_t] }
%struct._ivar_t = type { i32*, i8*, i8*, i32, i32 }
%struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] }
%struct._prop_t = type { i8*, i8* }
%struct.CGSize = type { double, double }

@"OBJC_CLASS_$_Object" = external global %struct._class_t
@"OBJC_CLASSLIST_REFERENCES_$_" = private global %struct._class_t* @"OBJC_CLASS_$_Object", section "__DATA, __objc_classrefs, regular, no_dead_strip", align 8
@OBJC_METH_VAR_NAME_ = private unnamed_addr constant [6 x i8] c"alloc\00", section "__TEXT,__objc_methname,cstring_literals", align 1
@OBJC_SELECTOR_REFERENCES_ = private externally_initialized global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @OBJC_METH_VAR_NAME_, i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8
@OBJC_METH_VAR_NAME_.1 = private unnamed_addr constant [14 x i8] c"initWithSize:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
@OBJC_SELECTOR_REFERENCES_.2 = private externally_initialized global i8* getelementptr inbounds ([14 x i8], [14 x i8]* @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8
@OBJC_METH_VAR_NAME_.3 = private unnamed_addr constant [9 x i8] c"aMessage\00", section "__TEXT,__objc_methname,cstring_literals", align 1
@OBJC_SELECTOR_REFERENCES_.4 = private externally_initialized global i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_METH_VAR_NAME_.3, i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip", align 8
@_objc_empty_cache = external global %struct._objc_cache
@"OBJC_CLASS_$_MyObject" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_MyObject", %struct._class_t* null, %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** null, %struct._class_ro_t* @"\01l_OBJC_CLASS_RO_$_MyObject" }, section "__DATA, __objc_data", align 8
@"OBJC_METACLASS_$_MyObject" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_MyObject", %struct._class_t* @"OBJC_CLASS_$_MyObject", %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** null, %struct._class_ro_t* @"\01l_OBJC_METACLASS_RO_$_MyObject" }, section "__DATA, __objc_data", align 8
@OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"MyObject\00", section "__TEXT,__objc_classname,cstring_literals", align 1
@OBJC_METH_VAR_NAME_.5 = private unnamed_addr constant [12 x i8] c"doWithSize:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
@OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [21 x i8] c"@32@0:8{CGSize=dd}16\00", section "__TEXT,__objc_methtype,cstring_literals", align 1
@"\01l_OBJC_$_CLASS_METHODS_MyObject" = private global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { i8* getelementptr inbounds ([12 x i8], [12 x i8]* @OBJC_METH_VAR_NAME_.5, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @OBJC_METH_VAR_TYPE_, i32 0, i32 0), i8* bitcast (i8* (i8*, i8*, [2 x double])* @"\01+[MyObject doWithSize:]" to i8*) }] }, section "__DATA, __objc_const", align 8
@"\01l_OBJC_METACLASS_RO_$_MyObject" = private global %struct._class_ro_t { i32 131, i32 40, i32 40, i8* null, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32 0), %struct.__method_list_t* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_CLASS_METHODS_MyObject" to %struct.__method_list_t*), %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
@"\01l_OBJC_CLASS_RO_$_MyObject" = private global %struct._class_ro_t { i32 130, i32 0, i32 0, i8* null, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32 0), %struct.__method_list_t* null, %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
@"OBJC_LABEL_CLASS_$" = private global [1 x i8*] [i8* bitcast (%struct._class_t* @"OBJC_CLASS_$_MyObject" to i8*)], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
@llvm.compiler.used = appending global [12 x i8*] [i8* bitcast (%struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_" to i8*), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @OBJC_METH_VAR_NAME_, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_ to i8*), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @OBJC_METH_VAR_NAME_.1, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_.2 to i8*), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_METH_VAR_NAME_.3, i32 0, i32 0), i8* bitcast (i8** @OBJC_SELECTOR_REFERENCES_.4 to i8*), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @OBJC_CLASS_NAME_, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @OBJC_METH_VAR_NAME_.5, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @OBJC_METH_VAR_TYPE_, i32 0, i32 0), i8* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_CLASS_METHODS_MyObject" to i8*), i8* bitcast ([1 x i8*]* @"OBJC_LABEL_CLASS_$" to i8*)], section "llvm.metadata"
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
@__asan_shadow_memory_dynamic_address = external global i64
@___asan_gen_ = private unnamed_addr constant [34 x i8] c"2 32 16 9 imageSize 64 8 6 object\00", align 1

; Function Attrs: noinline sanitize_address ssp uwtable
define internal i8* @"\01+[MyObject doWithSize:]"(i8* %self, i8* %_cmd, [2 x double] %imageSize.coerce) #0 !dbg !14 {
entry:
  %0 = load i64, i64* @__asan_shadow_memory_dynamic_address
  %self.addr = alloca i8*, align 8
  %_cmd.addr = alloca i8*, align 8
  %MyAlloca = alloca [96 x i8], align 32, !dbg !35
  %1 = ptrtoint [96 x i8]* %MyAlloca to i64, !dbg !35
  %2 = add i64 %1, 32, !dbg !35
  %3 = inttoptr i64 %2 to %struct.CGSize*, !dbg !35
  %4 = add i64 %1, 64, !dbg !35
  %5 = inttoptr i64 %4 to %0**, !dbg !35
  %6 = inttoptr i64 %1 to i64*, !dbg !35
  store i64 1102416563, i64* %6, !dbg !35
  %7 = add i64 %1, 8, !dbg !35
  %8 = inttoptr i64 %7 to i64*, !dbg !35
  store i64 ptrtoint ([34 x i8]* @___asan_gen_ to i64), i64* %8, !dbg !35
  %9 = add i64 %1, 16, !dbg !35
  %10 = inttoptr i64 %9 to i64*, !dbg !35
  store i64 ptrtoint (i8* (i8*, i8*, [2 x double])* @"\01+[MyObject doWithSize:]" to i64), i64* %10, !dbg !35
  %11 = lshr i64 %1, 3, !dbg !35
  %12 = add i64 %11, %0, !dbg !35
  %13 = add i64 %12, 0, !dbg !35
  %14 = inttoptr i64 %13 to i64*, !dbg !35
  store i64 -940689368107847183, i64* %14, align 1, !dbg !35
  %15 = add i64 %12, 9, !dbg !35
  %16 = inttoptr i64 %15 to i16*, !dbg !35
  store i16 -3085, i16* %16, align 1, !dbg !35
  %17 = add i64 %12, 11, !dbg !35
  %18 = inttoptr i64 %17 to i8*, !dbg !35
  store i8 -13, i8* %18, align 1, !dbg !35
  call void @llvm.dbg.declare(metadata %struct.CGSize* %3, metadata !36, metadata !37), !dbg !38
  call void @llvm.dbg.declare(metadata %0** %5, metadata !39, metadata !37), !dbg !45
  %19 = bitcast %struct.CGSize* %3 to [2 x double]*
  %20 = ptrtoint [2 x double]* %19 to i64
  %21 = lshr i64 %20, 3
  %22 = add i64 %21, %0
  %23 = inttoptr i64 %22 to i16*
  %24 = load i16, i16* %23
  %25 = icmp ne i16 %24, 0
  br i1 %25, label %26, label %27

; <label>:26:                                     ; preds = %entry
  call void @__asan_report_store16(i64 %20)
  call void asm sideeffect "", ""()
  unreachable

; <label>:27:                                     ; preds = %entry
  store [2 x double] %imageSize.coerce, [2 x double]* %19, align 8
  store i8* %self, i8** %self.addr, align 8
  call void @llvm.dbg.declare(metadata i8** %self.addr, metadata !46, metadata !48), !dbg !49
  store i8* %_cmd, i8** %_cmd.addr, align 8
  call void @llvm.dbg.declare(metadata i8** %_cmd.addr, metadata !50, metadata !48), !dbg !49
  %28 = load %struct._class_t*, %struct._class_t** @"OBJC_CLASSLIST_REFERENCES_$_", align 8, !dbg !52
  %29 = add i64 lshr (i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_ to i64), i64 3), %0, !dbg !52
  %30 = inttoptr i64 %29 to i8*, !dbg !52
  %31 = load i8, i8* %30, !dbg !52
  %32 = icmp ne i8 %31, 0, !dbg !52
  br i1 %32, label %33, label %34, !dbg !52

; <label>:33:                                     ; preds = %27
  call void @__asan_report_load8(i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_ to i64)), !dbg !52
  call void asm sideeffect "", ""(), !dbg !52
  unreachable, !dbg !52

; <label>:34:                                     ; preds = %27
  %35 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_, align 8, !dbg !52, !invariant.load !2
  %36 = bitcast %struct._class_t* %28 to i8*, !dbg !52
  %call = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %36, i8* %35), !dbg !52
  %37 = bitcast i8* %call to %0*, !dbg !52
  %38 = add i64 lshr (i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.2 to i64), i64 3), %0, !dbg !53
  %39 = inttoptr i64 %38 to i8*, !dbg !53
  %40 = load i8, i8* %39, !dbg !53
  %41 = icmp ne i8 %40, 0, !dbg !53
  br i1 %41, label %42, label %43, !dbg !53

; <label>:42:                                     ; preds = %34
  call void @__asan_report_load8(i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.2 to i64)), !dbg !53
  call void asm sideeffect "", ""(), !dbg !53
  unreachable, !dbg !53

; <label>:43:                                     ; preds = %34
  %44 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.2, align 8, !dbg !53, !invariant.load !2
  %45 = bitcast %0* %37 to i8*, !dbg !53
  %46 = bitcast %struct.CGSize* %3 to [2 x double]*, !dbg !53
  %47 = ptrtoint [2 x double]* %46 to i64, !dbg !53
  %48 = lshr i64 %47, 3, !dbg !53
  %49 = add i64 %48, %0, !dbg !53
  %50 = inttoptr i64 %49 to i16*, !dbg !53
  %51 = load i16, i16* %50, !dbg !53
  %52 = icmp ne i16 %51, 0, !dbg !53
  br i1 %52, label %53, label %54, !dbg !53

; <label>:53:                                     ; preds = %43
  call void @__asan_report_load16(i64 %47), !dbg !53
  call void asm sideeffect "", ""(), !dbg !53
  unreachable, !dbg !53

; <label>:54:                                     ; preds = %43
  %55 = load [2 x double], [2 x double]* %46, align 8, !dbg !53
  %call1 = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*, [2 x double])*)(i8* %45, i8* %44, [2 x double] %55), !dbg !53
  %56 = bitcast i8* %call1 to %0*, !dbg !53
  %57 = ptrtoint %0** %5 to i64, !dbg !45
  %58 = lshr i64 %57, 3, !dbg !45
  %59 = add i64 %58, %0, !dbg !45
  %60 = inttoptr i64 %59 to i8*, !dbg !45
  %61 = load i8, i8* %60, !dbg !45
  %62 = icmp ne i8 %61, 0, !dbg !45
  br i1 %62, label %63, label %64, !dbg !45

; <label>:63:                                     ; preds = %54
  call void @__asan_report_store8(i64 %57), !dbg !45
  call void asm sideeffect "", ""(), !dbg !45
  unreachable, !dbg !45

; <label>:64:                                     ; preds = %54
  store %0* %56, %0** %5, align 8, !dbg !45
  %65 = load %0*, %0** %5, align 8, !dbg !54
  %66 = add i64 lshr (i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.4 to i64), i64 3), %0, !dbg !55
  %67 = inttoptr i64 %66 to i8*, !dbg !55
  %68 = load i8, i8* %67, !dbg !55
  %69 = icmp ne i8 %68, 0, !dbg !55
  br i1 %69, label %70, label %71, !dbg !55

; <label>:70:                                     ; preds = %64
  call void @__asan_report_load8(i64 ptrtoint (i8** @OBJC_SELECTOR_REFERENCES_.4 to i64)), !dbg !55
  call void asm sideeffect "", ""(), !dbg !55
  unreachable, !dbg !55

; <label>:71:                                     ; preds = %64
  %72 = load i8*, i8** @OBJC_SELECTOR_REFERENCES_.4, align 8, !dbg !55, !invariant.load !2
  %73 = bitcast %0* %65 to i8*, !dbg !55
  %call2 = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %73, i8* %72), !dbg !55
  call void asm sideeffect "mov\09fp, fp\09\09; marker for objc_retainAutoreleaseReturnValue", ""(), !dbg !55
  %74 = call i8* @objc_retainAutoreleasedReturnValue(i8* %call2) #3, !dbg !55
  %75 = bitcast %0** %5 to i8**, !dbg !56
  call void @objc_storeStrong(i8** %75, i8* null) #3, !dbg !56
  %76 = tail call i8* @objc_autoreleaseReturnValue(i8* %74) #3, !dbg !56
  store i64 1172321806, i64* %6, !dbg !56
  %77 = add i64 %12, 0, !dbg !56
  %78 = inttoptr i64 %77 to i64*, !dbg !56
  store i64 0, i64* %78, align 1, !dbg !56
  %79 = add i64 %12, 9, !dbg !56
  %80 = inttoptr i64 %79 to i16*, !dbg !56
  store i16 0, i16* %80, align 1, !dbg !56
  %81 = add i64 %12, 11, !dbg !56
  %82 = inttoptr i64 %81 to i8*, !dbg !56
  store i8 0, i8* %82, align 1, !dbg !56
  ret i8* %76, !dbg !56
}

; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

; Function Attrs: nonlazybind
declare i8* @objc_msgSend(i8*, i8*, ...) #2

declare i8* @objc_retainAutoreleasedReturnValue(i8* returned)

declare void @objc_storeStrong(i8**, i8*)

declare i8* @objc_autoreleaseReturnValue(i8* returned)

define internal void @asan.module_ctor() {
  call void @__asan_init()
  call void @__asan_version_mismatch_check_v8()
  ret void
}

declare void @__asan_init()

declare void @__asan_version_mismatch_check_v8()

declare void @__asan_report_load8(i64)

declare void @__asan_report_load16(i64)

declare void @__asan_report_store8(i64)

declare void @__asan_report_store16(i64)

attributes #0 = { noinline sanitize_address ssp uwtable }
attributes #1 = { nounwind readnone }
attributes #2 = { nonlazybind }
attributes #3 = { nounwind }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!5, !6, !7, !8, !9, !10, !11, !12}
!llvm.ident = !{!13}

!0 = distinct !DICompileUnit(language: DW_LANG_ObjC, file: !1, producer: "clang version 5.0.0 (trunk 295779) (llvm/trunk 295777)", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, enums: !2, retainedTypes: !3)
!1 = !DIFile(filename: "m.m", directory: "/")
!2 = !{}
!3 = !{!4}
!4 = !DICompositeType(tag: DW_TAG_structure_type, name: "MyObject", scope: !1, file: !1, line: 15, flags: DIFlagObjcClassComplete, elements: !2, runtimeLang: DW_LANG_ObjC)
!5 = !{i32 1, !"Objective-C Version", i32 2}
!6 = !{i32 1, !"Objective-C Image Info Version", i32 0}
!7 = !{i32 1, !"Objective-C Image Info Section", !"__DATA, __objc_imageinfo, regular, no_dead_strip"}
!8 = !{i32 4, !"Objective-C Garbage Collection", i32 0}
!9 = !{i32 1, !"Objective-C Class Properties", i32 64}
!10 = !{i32 2, !"Dwarf Version", i32 2}
!11 = !{i32 2, !"Debug Info Version", i32 3}
!12 = !{i32 1, !"PIC Level", i32 2}
!13 = !{!"clang version 5.0.0 (trunk 295779) (llvm/trunk 295777)"}
!14 = distinct !DISubprogram(name: "+[MyObject doWithSize:]", scope: !1, file: !1, line: 16, type: !15, isLocal: true, isDefinition: true, scopeLine: 16, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
!15 = !DISubroutineType(types: !16)
!16 = !{!17, !24, !26, !29}
!17 = !DIDerivedType(tag: DW_TAG_typedef, name: "id", file: !1, baseType: !18)
!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !19, size: 64)
!19 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_object", file: !1, elements: !20)
!20 = !{!21}
!21 = !DIDerivedType(tag: DW_TAG_member, name: "isa", scope: !19, file: !1, baseType: !22, size: 64)
!22 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !23, size: 64)
!23 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_class", file: !1, flags: DIFlagFwdDecl)
!24 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25, flags: DIFlagArtificial | DIFlagObjectPointer)
!25 = !DIDerivedType(tag: DW_TAG_typedef, name: "Class", file: !1, baseType: !22)
!26 = !DIDerivedType(tag: DW_TAG_typedef, name: "SEL", file: !1, baseType: !27, flags: DIFlagArtificial)
!27 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !28, size: 64)
!28 = !DICompositeType(tag: DW_TAG_structure_type, name: "objc_selector", file: !1, flags: DIFlagFwdDecl)
!29 = !DIDerivedType(tag: DW_TAG_typedef, name: "CGSize", file: !1, line: 10, baseType: !30)
!30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "CGSize", file: !1, line: 6, size: 128, elements: !31)
!31 = !{!32, !34}
!32 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !30, file: !1, line: 7, baseType: !33, size: 64)
!33 = !DIBasicType(name: "double", size: 64, encoding: DW_ATE_float)
!34 = !DIDerivedType(tag: DW_TAG_member, name: "height", scope: !30, file: !1, line: 8, baseType: !33, size: 64, offset: 64)
!35 = !DILocation(line: 16, scope: !14)
!36 = !DILocalVariable(name: "imageSize", arg: 3, scope: !14, file: !1, line: 16, type: !29)
!37 = !DIExpression(DW_OP_deref)
!38 = !DILocation(line: 16, column: 26, scope: !14)
!39 = !DILocalVariable(name: "object", scope: !14, file: !1, line: 17, type: !40)
!40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !41, size: 64)
!41 = !DICompositeType(tag: DW_TAG_structure_type, name: "Object", scope: !1, file: !1, line: 11, elements: !42, runtimeLang: DW_LANG_ObjC)
!42 = !{!43}
!43 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !41, baseType: !44)
!44 = !DICompositeType(tag: DW_TAG_structure_type, name: "NSObject", scope: !1, file: !1, line: 3, elements: !2, runtimeLang: DW_LANG_ObjC)
!45 = !DILocation(line: 17, column: 11, scope: !14)
!46 = !DILocalVariable(name: "self", arg: 1, scope: !14, type: !47, flags: DIFlagArtificial | DIFlagObjectPointer)
!47 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !25)
!48 = !DIExpression()
!49 = !DILocation(line: 0, scope: !14)
!50 = !DILocalVariable(name: "_cmd", arg: 2, scope: !14, type: !51, flags: DIFlagArtificial)
!51 = !DIDerivedType(tag: DW_TAG_typedef, name: "SEL", file: !1, baseType: !27)
!52 = !DILocation(line: 17, column: 21, scope: !14)
!53 = !DILocation(line: 17, column: 20, scope: !14)
!54 = !DILocation(line: 18, column: 11, scope: !14)
!55 = !DILocation(line: 18, column: 10, scope: !14)
!56 = !DILocation(line: 19, column: 1, scope: !14)
