; RUN: llc < %s -filetype=obj | llvm-readobj - -codeview | FileCheck %s
; RUN: llc < %s | FileCheck %s --check-prefix=ASM
; RUN: opt -S -debugger-tune=lldb %s | FileCheck -check-prefix=OPT %s
;
; -- "thunk.cpp" begin --------------------------------------------------------
; class A { public: virtual bool MyMethod() { return true; } }; 
; class B { public: virtual bool MyMethod() { return true; } }; 
; class C : public virtual A, public virtual B { 
; public: 
;     virtual bool MyMethod() { return true; } 
; }; 
; 
; int main() 
; { 
;     A* a = new C(); 
;     B* b = new C(); 
;     C* c = new C(); 
;     a->MyMethod();
;     b->MyMethod();
;     c->MyMethod();
;     bool (A::*mp)() = &A::MyMethod;
;     return 0;
; } 
; -- "thunk.cpp" end ----------------------------------------------------------
;
; Build command:
;   $ clang -S -emit-llvm -g -gcodeview thunk.cpp
;
; CHECK:       Thunk32Sym {
; CHECK-NEXT:    Kind: S_THUNK32 ({{.*}})
; CHECK-NEXT:    Name: {{.*_9A.*}}
; CHECK-NEXT:    Parent: 0
; CHECK-NEXT:    End: 0
; CHECK-NEXT:    Next: 0
; CHECK-NEXT:    Off: 0
; CHECK-NEXT:    Seg: 0
; CHECK-NEXT:    Len: {{[0-9]+}}
; CHECK-NEXT:    Ordinal: Standard (0x0)
; CHECK-NEXT:  }
; CHECK-NEXT:  ProcEnd {
; CHECK-NEXT:    Kind: S_PROC_ID_END ({{.*}})
; CHECK-NEXT:  }
;
; CHECK:       Thunk32Sym {
; CHECK-NEXT:    Kind: S_THUNK32 ({{.*}})
; CHECK-NEXT:    Name: {{.*MyMethod.*C.*}}
; CHECK-NEXT:    Parent: 0
; CHECK-NEXT:    End: 0
; CHECK-NEXT:    Next: 0
; CHECK-NEXT:    Off: 0
; CHECK-NEXT:    Seg: 0
; CHECK-NEXT:    Len: {{[0-9]+}}
; CHECK-NEXT:    Ordinal: Standard (0x0)
; CHECK-NEXT:  }
; CHECK-NEXT:  ProcEnd {
; CHECK-NEXT:    Kind: S_PROC_ID_END ({{.*}})
; CHECK-NEXT:  }

; ASM:        .long   241                     # Symbol subsection for [[NAME1:.*_9A.*]]
; ASM-NEXT:   .long   {{.*}}                  # Subsection size 
; ASM-NEXT: {{L.*}}:
; ASM-NEXT:   .short  [[END1:.?L.*]]-[[BEGIN1:.?L.*]]   # Record length 
; ASM-NEXT: [[BEGIN1]]:
; ASM-NEXT:   .short  4354                    # Record kind: S_THUNK32 
; ASM-NEXT:   .long   0                       # PtrParent 
; ASM-NEXT:   .long   0                       # PtrEnd 
; ASM-NEXT:   .long   0                       # PtrNext 
; ASM-NEXT:   .secrel32 "[[NAME1]]"           # Thunk section relative address 
; ASM-NEXT:   .secidx "[[NAME1]]"             # Thunk section index 
; ASM-NEXT:   .short  Lfunc_end{{.*}}-"[[NAME1]]" # Code size 
; ASM-NEXT:   .byte   0                       # Ordinal 
; ASM-NEXT:   .asciz  "[[NAME1]]"             # Function name 
; ASM-NEXT:   .p2align 2
; ASM-NEXT: [[END1]]:
; ASM-NEXT:   .short  2                       # Record length 
; ASM-NEXT:   .short  4431                    # Record kind: S_PROC_ID_END 
;
; ASM:        .long 241                       # Symbol subsection for [[NAME2:.*MyMethod.*C.*]]
; ASM-NEXT:   .long {{.*}}                    # Subsection size
; ASM-NEXT: {{L.*}}:
; ASM-NEXT:   .short [[END2:.?L.*]]-[[BEGIN2:.?L.*]] # Record length
; ASM-NEXT: [[BEGIN2]]:
; ASM-NEXT:   .short 4354                     # Record kind: S_THUNK32
; ASM-NEXT:   .long 0                         # PtrParent
; ASM-NEXT:   .long 0                         # PtrEnd
; ASM-NEXT:   .long 0                         # PtrNext
; ASM-NEXT:   .secrel32 "[[NAME2]]"           # Thunk section relative address
; ASM-NEXT:   .secidx   "[[NAME2]]"           # Thunk section index
; ASM-NEXT:   .short Lfunc_end{{.*}}-"[[NAME2]]" # Code size
; ASM-NEXT:   .byte 0                         # Ordinal
; ASM-NEXT:   .asciz "[[NAME2]]"              # Function name
; ASM-NEXT:   .p2align 2
; ASM-NEXT: [[END2]]:
; ASM-NEXT:   .short 2                        # Record length
; ASM-NEXT:   .short 4431                     # Record kind: S_PROC_ID_END 

; OPT: DISubprogram(linkageName: "{{.*MyMethod.*C.*}}",{{.*}} line: 5,{{.*}} flags: DIFlagArtificial | DIFlagThunk{{.*}})


; ModuleID = 'thunk.cpp'
source_filename = "thunk.cpp"
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i686-pc-windows-msvc19.0.24210"

%rtti.CompleteObjectLocator = type { i32, i32, i32, i8*, %rtti.ClassHierarchyDescriptor* }
%rtti.ClassHierarchyDescriptor = type { i32, i32, i32, %rtti.BaseClassDescriptor** }
%rtti.BaseClassDescriptor = type { i8*, i32, i32, i32, i32, i32, %rtti.ClassHierarchyDescriptor* }
%rtti.TypeDescriptor7 = type { i8**, i8*, [8 x i8] }
%class.A = type { i32 (...)** }
%class.B = type { i32 (...)** }
%class.C = type { i32*, %class.A, %class.B }

$"\01??0C@@QAE@XZ" = comdat any

$"\01??_9A@@$BA@AE" = comdat any

$"\01??0A@@QAE@XZ" = comdat any

$"\01??0B@@QAE@XZ" = comdat any

$"\01?MyMethod@C@@UAE_NXZ" = comdat any

$"\01?MyMethod@C@@W3AE_NXZ" = comdat any

$"\01?MyMethod@A@@UAE_NXZ" = comdat any

$"\01?MyMethod@B@@UAE_NXZ" = comdat any

$"\01??_8C@@7B@" = comdat any

$"\01??_7C@@6BA@@@" = comdat largest

$"\01??_7C@@6BB@@@" = comdat largest

$"\01??_R4C@@6BA@@@" = comdat any

$"\01??_R0?AVC@@@8" = comdat any

$"\01??_R3C@@8" = comdat any

$"\01??_R2C@@8" = comdat any

$"\01??_R1A@?0A@EA@C@@8" = comdat any

$"\01??_R1A@A@3FA@A@@8" = comdat any

$"\01??_R0?AVA@@@8" = comdat any

$"\01??_R3A@@8" = comdat any

$"\01??_R2A@@8" = comdat any

$"\01??_R1A@?0A@EA@A@@8" = comdat any

$"\01??_R1A@A@7FA@B@@8" = comdat any

$"\01??_R0?AVB@@@8" = comdat any

$"\01??_R3B@@8" = comdat any

$"\01??_R2B@@8" = comdat any

$"\01??_R1A@?0A@EA@B@@8" = comdat any

$"\01??_R4C@@6BB@@@" = comdat any

$"\01??_7A@@6B@" = comdat largest

$"\01??_R4A@@6B@" = comdat any

$"\01??_7B@@6B@" = comdat largest

$"\01??_R4B@@6B@" = comdat any

@"\01??_8C@@7B@" = linkonce_odr unnamed_addr constant [3 x i32] [i32 0, i32 4, i32 8], comdat
@0 = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4C@@6BA@@@" to i8*), i8* bitcast (i1 (i8*)* @"\01?MyMethod@C@@UAE_NXZ" to i8*)] }, comdat($"\01??_7C@@6BA@@@")
@1 = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4C@@6BB@@@" to i8*), i8* bitcast (i1 (i8*)* @"\01?MyMethod@C@@W3AE_NXZ" to i8*)] }, comdat($"\01??_7C@@6BB@@@")
@"\01??_R4C@@6BA@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 4, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVC@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" }, comdat
@"\01??_7type_info@@6B@" = external constant i8*
@"\01??_R0?AVC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVC@@\00" }, comdat
@"\01??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 3, i32 3, %rtti.BaseClassDescriptor** getelementptr inbounds ([4 x %rtti.BaseClassDescriptor*], [4 x %rtti.BaseClassDescriptor*]* @"\01??_R2C@@8", i32 0, i32 0) }, comdat
@"\01??_R2C@@8" = linkonce_odr constant [4 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@C@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@A@3FA@A@@8", %rtti.BaseClassDescriptor* @"\01??_R1A@A@7FA@B@@8", %rtti.BaseClassDescriptor* null], comdat
@"\01??_R1A@?0A@EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVC@@@8" to i8*), i32 2, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" }, comdat
@"\01??_R1A@A@3FA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVA@@@8" to i8*), i32 0, i32 0, i32 0, i32 4, i32 80, %rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" }, comdat
@"\01??_R0?AVA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVA@@\00" }, comdat
@"\01??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2A@@8", i32 0, i32 0) }, comdat
@"\01??_R2A@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@A@@8", %rtti.BaseClassDescriptor* null], comdat
@"\01??_R1A@?0A@EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVA@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" }, comdat
@"\01??_R1A@A@7FA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVB@@@8" to i8*), i32 0, i32 0, i32 0, i32 8, i32 80, %rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" }, comdat
@"\01??_R0?AVB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AVB@@\00" }, comdat
@"\01??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, %rtti.BaseClassDescriptor** getelementptr inbounds ([2 x %rtti.BaseClassDescriptor*], [2 x %rtti.BaseClassDescriptor*]* @"\01??_R2B@@8", i32 0, i32 0) }, comdat
@"\01??_R2B@@8" = linkonce_odr constant [2 x %rtti.BaseClassDescriptor*] [%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@B@@8", %rtti.BaseClassDescriptor* null], comdat
@"\01??_R1A@?0A@EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVB@@@8" to i8*), i32 0, i32 0, i32 -1, i32 0, i32 64, %rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" }, comdat
@"\01??_R4C@@6BB@@@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 8, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVC@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" }, comdat
@2 = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4A@@6B@" to i8*), i8* bitcast (i1 (%class.A*)* @"\01?MyMethod@A@@UAE_NXZ" to i8*)] }, comdat($"\01??_7A@@6B@")
@"\01??_R4A@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVA@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" }, comdat
@3 = private unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4B@@6B@" to i8*), i8* bitcast (i1 (%class.B*)* @"\01?MyMethod@B@@UAE_NXZ" to i8*)] }, comdat($"\01??_7B@@6B@")
@"\01??_R4B@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 0, i32 0, i32 0, i8* bitcast (%rtti.TypeDescriptor7* @"\01??_R0?AVB@@@8" to i8*), %rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" }, comdat

@"\01??_7C@@6BA@@@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @0, i32 0, i32 0, i32 1)
@"\01??_7C@@6BB@@@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @1, i32 0, i32 0, i32 1)
@"\01??_7A@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @2, i32 0, i32 0, i32 1)
@"\01??_7B@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ({ [2 x i8*] }, { [2 x i8*] }* @3, i32 0, i32 0, i32 1)

; Function Attrs: noinline norecurse optnone
define i32 @main() #0 !dbg !8 {
entry:
  %retval = alloca i32, align 4
  %a = alloca %class.A*, align 4
  %b = alloca %class.B*, align 4
  %c = alloca %class.C*, align 4
  %mp = alloca i8*, align 4
  store i32 0, i32* %retval, align 4
  call void @llvm.dbg.declare(metadata %class.A** %a, metadata !12, metadata !DIExpression()), !dbg !24
  %call = call i8* @"\01??2@YAPAXI@Z"(i32 12) #7, !dbg !25
  %0 = bitcast i8* %call to %class.C*, !dbg !25
  %1 = bitcast %class.C* %0 to i8*, !dbg !26
  call void @llvm.memset.p0i8.i32(i8* align 8 %1, i8 0, i32 12, i1 false), !dbg !26
  %call1 = call x86_thiscallcc %class.C* @"\01??0C@@QAE@XZ"(%class.C* %0, i32 1) #8, !dbg !26
  %2 = icmp eq %class.C* %0, null, !dbg !25
  br i1 %2, label %cast.end, label %cast.notnull, !dbg !25

cast.notnull:                                     ; preds = %entry
  %3 = bitcast %class.C* %0 to i8*, !dbg !25
  %vbptr = getelementptr inbounds i8, i8* %3, i32 0, !dbg !25
  %4 = bitcast i8* %vbptr to i32**, !dbg !25
  %vbtable = load i32*, i32** %4, align 4, !dbg !25
  %5 = getelementptr inbounds i32, i32* %vbtable, i32 1, !dbg !25
  %vbase_offs = load i32, i32* %5, align 4, !dbg !25
  %6 = add nsw i32 0, %vbase_offs, !dbg !25
  %7 = bitcast %class.C* %0 to i8*, !dbg !25
  %add.ptr = getelementptr inbounds i8, i8* %7, i32 %6, !dbg !25
  %8 = bitcast i8* %add.ptr to %class.A*, !dbg !25
  br label %cast.end, !dbg !25

cast.end:                                         ; preds = %cast.notnull, %entry
  %cast.result = phi %class.A* [ %8, %cast.notnull ], [ null, %entry ], !dbg !25
  store %class.A* %cast.result, %class.A** %a, align 4, !dbg !24
  call void @llvm.dbg.declare(metadata %class.B** %b, metadata !27, metadata !DIExpression()), !dbg !36
  %call2 = call i8* @"\01??2@YAPAXI@Z"(i32 12) #7, !dbg !37
  %9 = bitcast i8* %call2 to %class.C*, !dbg !37
  %10 = bitcast %class.C* %9 to i8*, !dbg !38
  call void @llvm.memset.p0i8.i32(i8* align 8 %10, i8 0, i32 12, i1 false), !dbg !38
  %call3 = call x86_thiscallcc %class.C* @"\01??0C@@QAE@XZ"(%class.C* %9, i32 1) #8, !dbg !38
  %11 = icmp eq %class.C* %9, null, !dbg !37
  br i1 %11, label %cast.end9, label %cast.notnull4, !dbg !37

cast.notnull4:                                    ; preds = %cast.end
  %12 = bitcast %class.C* %9 to i8*, !dbg !37
  %vbptr5 = getelementptr inbounds i8, i8* %12, i32 0, !dbg !37
  %13 = bitcast i8* %vbptr5 to i32**, !dbg !37
  %vbtable6 = load i32*, i32** %13, align 4, !dbg !37
  %14 = getelementptr inbounds i32, i32* %vbtable6, i32 2, !dbg !37
  %vbase_offs7 = load i32, i32* %14, align 4, !dbg !37
  %15 = add nsw i32 0, %vbase_offs7, !dbg !37
  %16 = bitcast %class.C* %9 to i8*, !dbg !37
  %add.ptr8 = getelementptr inbounds i8, i8* %16, i32 %15, !dbg !37
  %17 = bitcast i8* %add.ptr8 to %class.B*, !dbg !37
  br label %cast.end9, !dbg !37

cast.end9:                                        ; preds = %cast.notnull4, %cast.end
  %cast.result10 = phi %class.B* [ %17, %cast.notnull4 ], [ null, %cast.end ], !dbg !37
  store %class.B* %cast.result10, %class.B** %b, align 4, !dbg !36
  call void @llvm.dbg.declare(metadata %class.C** %c, metadata !39, metadata !DIExpression()), !dbg !49
  %call11 = call i8* @"\01??2@YAPAXI@Z"(i32 12) #7, !dbg !50
  %18 = bitcast i8* %call11 to %class.C*, !dbg !50
  %19 = bitcast %class.C* %18 to i8*, !dbg !51
  call void @llvm.memset.p0i8.i32(i8* align 8 %19, i8 0, i32 12, i1 false), !dbg !51
  %call12 = call x86_thiscallcc %class.C* @"\01??0C@@QAE@XZ"(%class.C* %18, i32 1) #8, !dbg !51
  store %class.C* %18, %class.C** %c, align 4, !dbg !49
  %20 = load %class.A*, %class.A** %a, align 4, !dbg !52
  %21 = bitcast %class.A* %20 to i1 (%class.A*)***, !dbg !53
  %vtable = load i1 (%class.A*)**, i1 (%class.A*)*** %21, align 4, !dbg !53
  %vfn = getelementptr inbounds i1 (%class.A*)*, i1 (%class.A*)** %vtable, i64 0, !dbg !53
  %22 = load i1 (%class.A*)*, i1 (%class.A*)** %vfn, align 4, !dbg !53
  %call13 = call x86_thiscallcc zeroext i1 %22(%class.A* %20), !dbg !53
  %23 = load %class.B*, %class.B** %b, align 4, !dbg !54
  %24 = bitcast %class.B* %23 to i1 (%class.B*)***, !dbg !55
  %vtable14 = load i1 (%class.B*)**, i1 (%class.B*)*** %24, align 4, !dbg !55
  %vfn15 = getelementptr inbounds i1 (%class.B*)*, i1 (%class.B*)** %vtable14, i64 0, !dbg !55
  %25 = load i1 (%class.B*)*, i1 (%class.B*)** %vfn15, align 4, !dbg !55
  %call16 = call x86_thiscallcc zeroext i1 %25(%class.B* %23), !dbg !55
  %26 = load %class.C*, %class.C** %c, align 4, !dbg !56
  %27 = bitcast %class.C* %26 to i8*, !dbg !57
  %vbptr17 = getelementptr inbounds i8, i8* %27, i32 0, !dbg !57
  %28 = bitcast i8* %vbptr17 to i32**, !dbg !57
  %vbtable18 = load i32*, i32** %28, align 4, !dbg !57
  %29 = getelementptr inbounds i32, i32* %vbtable18, i32 1, !dbg !57
  %vbase_offs19 = load i32, i32* %29, align 4, !dbg !57
  %30 = add nsw i32 0, %vbase_offs19, !dbg !57
  %31 = getelementptr inbounds i8, i8* %27, i32 %30, !dbg !57
  %32 = bitcast %class.C* %26 to i8*, !dbg !57
  %vbptr20 = getelementptr inbounds i8, i8* %32, i32 0, !dbg !57
  %33 = bitcast i8* %vbptr20 to i32**, !dbg !57
  %vbtable21 = load i32*, i32** %33, align 4, !dbg !57
  %34 = getelementptr inbounds i32, i32* %vbtable21, i32 1, !dbg !57
  %vbase_offs22 = load i32, i32* %34, align 4, !dbg !57
  %35 = add nsw i32 0, %vbase_offs22, !dbg !57
  %36 = getelementptr inbounds i8, i8* %32, i32 %35, !dbg !57
  %37 = bitcast i8* %36 to i1 (i8*)***, !dbg !57
  %vtable23 = load i1 (i8*)**, i1 (i8*)*** %37, align 4, !dbg !57
  %vfn24 = getelementptr inbounds i1 (i8*)*, i1 (i8*)** %vtable23, i64 0, !dbg !57
  %38 = load i1 (i8*)*, i1 (i8*)** %vfn24, align 4, !dbg !57
  %call25 = call x86_thiscallcc zeroext i1 %38(i8* %31), !dbg !57
  call void @llvm.dbg.declare(metadata i8** %mp, metadata !58, metadata !DIExpression()), !dbg !60
  store i8* bitcast (void (%class.A*, ...)* @"\01??_9A@@$BA@AE" to i8*), i8** %mp, align 4, !dbg !60
  ret i32 0, !dbg !61
}

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

; Function Attrs: nobuiltin
declare noalias i8* @"\01??2@YAPAXI@Z"(i32) #2

; Function Attrs: argmemonly nounwind
declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1) #3

; Function Attrs: noinline nounwind optnone
define linkonce_odr x86_thiscallcc %class.C* @"\01??0C@@QAE@XZ"(%class.C* returned %this, i32 %is_most_derived) unnamed_addr #4 comdat align 2 !dbg !62 {
entry:
  %retval = alloca %class.C*, align 4
  %is_most_derived.addr = alloca i32, align 4
  %this.addr = alloca %class.C*, align 4
  store i32 %is_most_derived, i32* %is_most_derived.addr, align 4
  call void @llvm.dbg.declare(metadata i32* %is_most_derived.addr, metadata !66, metadata !DIExpression()), !dbg !67
  store %class.C* %this, %class.C** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.C** %this.addr, metadata !68, metadata !DIExpression()), !dbg !67
  %this1 = load %class.C*, %class.C** %this.addr, align 4
  store %class.C* %this1, %class.C** %retval, align 4
  %is_most_derived2 = load i32, i32* %is_most_derived.addr, align 4
  %is_complete_object = icmp ne i32 %is_most_derived2, 0, !dbg !69
  br i1 %is_complete_object, label %ctor.init_vbases, label %ctor.skip_vbases, !dbg !69

ctor.init_vbases:                                 ; preds = %entry
  %this.int8 = bitcast %class.C* %this1 to i8*, !dbg !69
  %0 = getelementptr inbounds i8, i8* %this.int8, i32 0, !dbg !69
  %vbptr.C = bitcast i8* %0 to i32**, !dbg !69
  store i32* getelementptr inbounds ([3 x i32], [3 x i32]* @"\01??_8C@@7B@", i32 0, i32 0), i32** %vbptr.C, align 4, !dbg !69
  %1 = bitcast %class.C* %this1 to i8*, !dbg !69
  %2 = getelementptr inbounds i8, i8* %1, i32 4, !dbg !69
  %3 = bitcast i8* %2 to %class.A*, !dbg !69
  %call = call x86_thiscallcc %class.A* @"\01??0A@@QAE@XZ"(%class.A* %3) #8, !dbg !69
  %4 = bitcast %class.C* %this1 to i8*, !dbg !69
  %5 = getelementptr inbounds i8, i8* %4, i32 8, !dbg !69
  %6 = bitcast i8* %5 to %class.B*, !dbg !69
  %call3 = call x86_thiscallcc %class.B* @"\01??0B@@QAE@XZ"(%class.B* %6) #8, !dbg !69
  br label %ctor.skip_vbases, !dbg !69

ctor.skip_vbases:                                 ; preds = %ctor.init_vbases, %entry
  %7 = bitcast %class.C* %this1 to i8*, !dbg !69
  %vbptr = getelementptr inbounds i8, i8* %7, i32 0, !dbg !69
  %8 = bitcast i8* %vbptr to i32**, !dbg !69
  %vbtable = load i32*, i32** %8, align 4, !dbg !69
  %9 = getelementptr inbounds i32, i32* %vbtable, i32 1, !dbg !69
  %vbase_offs = load i32, i32* %9, align 4, !dbg !69
  %10 = add nsw i32 0, %vbase_offs, !dbg !69
  %11 = bitcast %class.C* %this1 to i8*, !dbg !69
  %add.ptr = getelementptr inbounds i8, i8* %11, i32 %10, !dbg !69
  %12 = bitcast i8* %add.ptr to i32 (...)***, !dbg !69
  store i32 (...)** bitcast (i8** @"\01??_7C@@6BA@@@" to i32 (...)**), i32 (...)*** %12, align 4, !dbg !69
  %13 = bitcast %class.C* %this1 to i8*, !dbg !69
  %vbptr4 = getelementptr inbounds i8, i8* %13, i32 0, !dbg !69
  %14 = bitcast i8* %vbptr4 to i32**, !dbg !69
  %vbtable5 = load i32*, i32** %14, align 4, !dbg !69
  %15 = getelementptr inbounds i32, i32* %vbtable5, i32 2, !dbg !69
  %vbase_offs6 = load i32, i32* %15, align 4, !dbg !69
  %16 = add nsw i32 0, %vbase_offs6, !dbg !69
  %17 = bitcast %class.C* %this1 to i8*, !dbg !69
  %add.ptr7 = getelementptr inbounds i8, i8* %17, i32 %16, !dbg !69
  %18 = bitcast i8* %add.ptr7 to i32 (...)***, !dbg !69
  store i32 (...)** bitcast (i8** @"\01??_7C@@6BB@@@" to i32 (...)**), i32 (...)*** %18, align 4, !dbg !69
  %19 = load %class.C*, %class.C** %retval, align 4, !dbg !69
  ret %class.C* %19, !dbg !69
}

; Function Attrs: noinline optnone
define linkonce_odr x86_thiscallcc void @"\01??_9A@@$BA@AE"(%class.A* %this, ...) #5 comdat align 2 !dbg !70 {
entry:
  %this.addr = alloca %class.A*, align 4
  store %class.A* %this, %class.A** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !72, metadata !DIExpression()), !dbg !73
  %this1 = load %class.A*, %class.A** %this.addr, align 4
  %0 = bitcast %class.A* %this1 to void (%class.A*, ...)***
  %vtable = load void (%class.A*, ...)**, void (%class.A*, ...)*** %0, align 4
  %vfn = getelementptr inbounds void (%class.A*, ...)*, void (%class.A*, ...)** %vtable, i64 0
  %1 = load void (%class.A*, ...)*, void (%class.A*, ...)** %vfn, align 4
  musttail call x86_thiscallcc void (%class.A*, ...) %1(%class.A* %this1, ...)
  ret void
                                                  ; No predecessors!
  ret void
}

; Function Attrs: noinline nounwind optnone
define linkonce_odr x86_thiscallcc %class.A* @"\01??0A@@QAE@XZ"(%class.A* returned %this) unnamed_addr #4 comdat align 2 !dbg !74 {
entry:
  %this.addr = alloca %class.A*, align 4
  store %class.A* %this, %class.A** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !78, metadata !DIExpression()), !dbg !79
  %this1 = load %class.A*, %class.A** %this.addr, align 4
  %0 = bitcast %class.A* %this1 to i32 (...)***, !dbg !80
  store i32 (...)** bitcast (i8** @"\01??_7A@@6B@" to i32 (...)**), i32 (...)*** %0, align 4, !dbg !80
  ret %class.A* %this1, !dbg !80
}

; Function Attrs: noinline nounwind optnone
define linkonce_odr x86_thiscallcc %class.B* @"\01??0B@@QAE@XZ"(%class.B* returned %this) unnamed_addr #4 comdat align 2 !dbg !81 {
entry:
  %this.addr = alloca %class.B*, align 4
  store %class.B* %this, %class.B** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.B** %this.addr, metadata !85, metadata !DIExpression()), !dbg !86
  %this1 = load %class.B*, %class.B** %this.addr, align 4
  %0 = bitcast %class.B* %this1 to i32 (...)***, !dbg !87
  store i32 (...)** bitcast (i8** @"\01??_7B@@6B@" to i32 (...)**), i32 (...)*** %0, align 4, !dbg !87
  ret %class.B* %this1, !dbg !87
}

; Function Attrs: noinline nounwind optnone
define linkonce_odr x86_thiscallcc zeroext i1 @"\01?MyMethod@C@@UAE_NXZ"(i8* %this.coerce) unnamed_addr #4 comdat align 2 !dbg !88 {
entry:
  %this = alloca %class.C*, align 4
  %this.addr = alloca %class.C*, align 4
  %coerce.val = bitcast i8* %this.coerce to %class.C*
  store %class.C* %coerce.val, %class.C** %this, align 4
  %this1 = load %class.C*, %class.C** %this, align 4
  store %class.C* %this1, %class.C** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.C** %this.addr, metadata !89, metadata !DIExpression()), !dbg !90
  %this2 = load %class.C*, %class.C** %this.addr, align 4
  %0 = bitcast %class.C* %this2 to i8*
  %1 = getelementptr inbounds i8, i8* %0, i32 -4
  %this.adjusted = bitcast i8* %1 to %class.C*
  ret i1 true, !dbg !91
}

; Function Attrs: noinline optnone
define linkonce_odr x86_thiscallcc zeroext i1 @"\01?MyMethod@C@@W3AE_NXZ"(i8* %this.coerce) unnamed_addr #6 comdat align 2 !dbg !92 {
entry:
  %this = alloca %class.C*, align 4
  %this.addr = alloca %class.C*, align 4
  %coerce.val = bitcast i8* %this.coerce to %class.C*
  store %class.C* %coerce.val, %class.C** %this, align 4
  %this1 = load %class.C*, %class.C** %this, align 4
  store %class.C* %this1, %class.C** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.C** %this.addr, metadata !93, metadata !DIExpression()), !dbg !94
  %this2 = load %class.C*, %class.C** %this.addr, align 4, !dbg !94
  %0 = bitcast %class.C* %this2 to i8*, !dbg !94
  %1 = getelementptr i8, i8* %0, i32 -4, !dbg !94
  %call = tail call x86_thiscallcc zeroext i1 @"\01?MyMethod@C@@UAE_NXZ"(i8* %1), !dbg !94
  ret i1 %call, !dbg !94
}

; Function Attrs: noinline nounwind optnone
define linkonce_odr x86_thiscallcc zeroext i1 @"\01?MyMethod@A@@UAE_NXZ"(%class.A* %this) unnamed_addr #4 comdat align 2 !dbg !95 {
entry:
  %this.addr = alloca %class.A*, align 4
  store %class.A* %this, %class.A** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !96, metadata !DIExpression()), !dbg !97
  %this1 = load %class.A*, %class.A** %this.addr, align 4
  ret i1 true, !dbg !98
}

; Function Attrs: noinline nounwind optnone
define linkonce_odr x86_thiscallcc zeroext i1 @"\01?MyMethod@B@@UAE_NXZ"(%class.B* %this) unnamed_addr #4 comdat align 2 !dbg !99 {
entry:
  %this.addr = alloca %class.B*, align 4
  store %class.B* %this, %class.B** %this.addr, align 4
  call void @llvm.dbg.declare(metadata %class.B** %this.addr, metadata !100, metadata !DIExpression()), !dbg !101
  %this1 = load %class.B*, %class.B** %this.addr, align 4
  ret i1 true, !dbg !102
}

attributes #0 = { noinline norecurse optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { nobuiltin "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #3 = { argmemonly nounwind }
attributes #4 = { noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #5 = { noinline optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "thunk" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #6 = { noinline optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #7 = { builtin }
attributes #8 = { nounwind }

!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6}
!llvm.ident = !{!7}

!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "clang version 7.0.0 (trunk)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
!1 = !DIFile(filename: "thunk.cpp", directory: "C:\5Cpath\5Cto", checksumkind: CSK_MD5, checksum: "d4b977fc614313c5a4fbdc980b2f4243")
!2 = !{}
!3 = !{i32 1, !"NumRegisterParameters", i32 0}
!4 = !{i32 2, !"CodeView", i32 1}
!5 = !{i32 2, !"Debug Info Version", i32 3}
!6 = !{i32 1, !"wchar_size", i32 2}
!7 = !{!"clang version 7.0.0 (trunk)"}
!8 = distinct !DISubprogram(name: "main", scope: !1, file: !1, line: 8, type: !9, isLocal: false, isDefinition: true, scopeLine: 9, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
!9 = !DISubroutineType(types: !10)
!10 = !{!11}
!11 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!12 = !DILocalVariable(name: "a", scope: !8, file: !1, line: 10, type: !13)
!13 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 32)
!14 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "A", file: !1, line: 1, size: 32, flags: DIFlagTypePassByValue, elements: !15, vtableHolder: !14, identifier: ".?AVA@@")
!15 = !{!16, !17, !19}
!16 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "__vtbl_ptr_type", baseType: null, size: 32)
!17 = !DIDerivedType(tag: DW_TAG_member, name: "_vptr$A", scope: !1, file: !1, baseType: !18, size: 32, flags: DIFlagArtificial)
!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !16, size: 32)
!19 = !DISubprogram(name: "MyMethod", linkageName: "\01?MyMethod@A@@UAE_NXZ", scope: !14, file: !1, line: 1, type: !20, isLocal: false, isDefinition: false, scopeLine: 1, containingType: !14, virtuality: DW_VIRTUALITY_virtual, virtualIndex: 0, flags: DIFlagPublic | DIFlagPrototyped | DIFlagIntroducedVirtual, isOptimized: false)
!20 = !DISubroutineType(cc: DW_CC_BORLAND_thiscall, types: !21)
!21 = !{!22, !23}
!22 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !14, size: 32, flags: DIFlagArtificial | DIFlagObjectPointer)
!24 = !DILocation(line: 10, column: 8, scope: !8)
!25 = !DILocation(line: 10, column: 12, scope: !8)
!26 = !DILocation(line: 10, column: 16, scope: !8)
!27 = !DILocalVariable(name: "b", scope: !8, file: !1, line: 11, type: !28)
!28 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !29, size: 32)
!29 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "B", file: !1, line: 2, size: 32, flags: DIFlagTypePassByValue, elements: !30, vtableHolder: !29, identifier: ".?AVB@@")
!30 = !{!16, !31, !32}
!31 = !DIDerivedType(tag: DW_TAG_member, name: "_vptr$B", scope: !1, file: !1, baseType: !18, size: 32, flags: DIFlagArtificial)
!32 = !DISubprogram(name: "MyMethod", linkageName: "\01?MyMethod@B@@UAE_NXZ", scope: !29, file: !1, line: 2, type: !33, isLocal: false, isDefinition: false, scopeLine: 2, containingType: !29, virtuality: DW_VIRTUALITY_virtual, virtualIndex: 0, flags: DIFlagPublic | DIFlagPrototyped | DIFlagIntroducedVirtual, isOptimized: false)
!33 = !DISubroutineType(cc: DW_CC_BORLAND_thiscall, types: !34)
!34 = !{!22, !35}
!35 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !29, size: 32, flags: DIFlagArtificial | DIFlagObjectPointer)
!36 = !DILocation(line: 11, column: 8, scope: !8)
!37 = !DILocation(line: 11, column: 12, scope: !8)
!38 = !DILocation(line: 11, column: 16, scope: !8)
!39 = !DILocalVariable(name: "c", scope: !8, file: !1, line: 12, type: !40)
!40 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !41, size: 32)
!41 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "C", file: !1, line: 3, size: 96, flags: DIFlagTypePassByValue, elements: !42, vtableHolder: !41, identifier: ".?AVC@@")
!42 = !{!43, !44, !45}
!43 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !41, baseType: !14, offset: 4, flags: DIFlagPublic | DIFlagVirtual)
!44 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !41, baseType: !29, offset: 8, flags: DIFlagPublic | DIFlagVirtual)
!45 = !DISubprogram(name: "MyMethod", linkageName: "\01?MyMethod@C@@UAE_NXZ", scope: !41, file: !1, line: 5, type: !46, isLocal: false, isDefinition: false, scopeLine: 5, containingType: !41, virtuality: DW_VIRTUALITY_virtual, virtualIndex: 0, thisAdjustment: 4, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: false)
!46 = !DISubroutineType(cc: DW_CC_BORLAND_thiscall, types: !47)
!47 = !{!22, !48}
!48 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !41, size: 32, flags: DIFlagArtificial | DIFlagObjectPointer)
!49 = !DILocation(line: 12, column: 8, scope: !8)
!50 = !DILocation(line: 12, column: 12, scope: !8)
!51 = !DILocation(line: 12, column: 16, scope: !8)
!52 = !DILocation(line: 13, column: 5, scope: !8)
!53 = !DILocation(line: 13, column: 8, scope: !8)
!54 = !DILocation(line: 14, column: 5, scope: !8)
!55 = !DILocation(line: 14, column: 8, scope: !8)
!56 = !DILocation(line: 15, column: 5, scope: !8)
!57 = !DILocation(line: 15, column: 8, scope: !8)
!58 = !DILocalVariable(name: "mp", scope: !8, file: !1, line: 16, type: !59)
!59 = !DIDerivedType(tag: DW_TAG_ptr_to_member_type, baseType: !20, size: 32, flags: DIFlagSingleInheritance, extraData: !14)
!60 = !DILocation(line: 16, column: 15, scope: !8)
!61 = !DILocation(line: 17, column: 5, scope: !8)
!62 = distinct !DISubprogram(name: "C", linkageName: "\01??0C@@QAE@XZ", scope: !41, file: !1, line: 3, type: !63, isLocal: false, isDefinition: true, scopeLine: 3, flags: DIFlagArtificial | DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !65, retainedNodes: !2)
!63 = !DISubroutineType(cc: DW_CC_BORLAND_thiscall, types: !64)
!64 = !{null, !48}
!65 = !DISubprogram(name: "C", scope: !41, type: !63, isLocal: false, isDefinition: false, flags: DIFlagPublic | DIFlagArtificial | DIFlagPrototyped, isOptimized: false)
!66 = !DILocalVariable(name: "is_most_derived", arg: 2, scope: !62, type: !11, flags: DIFlagArtificial)
!67 = !DILocation(line: 0, scope: !62)
!68 = !DILocalVariable(name: "this", arg: 1, scope: !62, type: !40, flags: DIFlagArtificial | DIFlagObjectPointer)
!69 = !DILocation(line: 3, column: 7, scope: !62)
!70 = distinct !DISubprogram(linkageName: "\01??_9A@@$BA@AE", scope: !1, file: !1, line: 1, type: !71, isLocal: false, isDefinition: true, flags: DIFlagArtificial | DIFlagThunk, isOptimized: false, unit: !0, retainedNodes: !2)
!71 = !DISubroutineType(types: !2)
!72 = !DILocalVariable(name: "this", arg: 1, scope: !70, type: !13, flags: DIFlagArtificial | DIFlagObjectPointer)
!73 = !DILocation(line: 0, scope: !70)
!74 = distinct !DISubprogram(name: "A", linkageName: "\01??0A@@QAE@XZ", scope: !14, file: !1, line: 1, type: !75, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagArtificial | DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !77, retainedNodes: !2)
!75 = !DISubroutineType(cc: DW_CC_BORLAND_thiscall, types: !76)
!76 = !{null, !23}
!77 = !DISubprogram(name: "A", scope: !14, type: !75, isLocal: false, isDefinition: false, flags: DIFlagPublic | DIFlagArtificial | DIFlagPrototyped, isOptimized: false)
!78 = !DILocalVariable(name: "this", arg: 1, scope: !74, type: !13, flags: DIFlagArtificial | DIFlagObjectPointer)
!79 = !DILocation(line: 0, scope: !74)
!80 = !DILocation(line: 1, column: 7, scope: !74)
!81 = distinct !DISubprogram(name: "B", linkageName: "\01??0B@@QAE@XZ", scope: !29, file: !1, line: 2, type: !82, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagArtificial | DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !84, retainedNodes: !2)
!82 = !DISubroutineType(cc: DW_CC_BORLAND_thiscall, types: !83)
!83 = !{null, !35}
!84 = !DISubprogram(name: "B", scope: !29, type: !82, isLocal: false, isDefinition: false, flags: DIFlagPublic | DIFlagArtificial | DIFlagPrototyped, isOptimized: false)
!85 = !DILocalVariable(name: "this", arg: 1, scope: !81, type: !28, flags: DIFlagArtificial | DIFlagObjectPointer)
!86 = !DILocation(line: 0, scope: !81)
!87 = !DILocation(line: 2, column: 7, scope: !81)
!88 = distinct !DISubprogram(name: "MyMethod", linkageName: "\01?MyMethod@C@@UAE_NXZ", scope: !41, file: !1, line: 5, type: !46, isLocal: false, isDefinition: true, scopeLine: 5, flags: DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !45, retainedNodes: !2)
!89 = !DILocalVariable(name: "this", arg: 1, scope: !88, type: !40, flags: DIFlagArtificial | DIFlagObjectPointer)
!90 = !DILocation(line: 0, scope: !88)
!91 = !DILocation(line: 5, column: 31, scope: !88)
!92 = distinct !DISubprogram(linkageName: "\01?MyMethod@C@@W3AE_NXZ", scope: !1, file: !1, line: 5, type: !71, isLocal: false, isDefinition: true, flags: DIFlagArtificial | DIFlagThunk, isOptimized: false, unit: !0, retainedNodes: !2)
!93 = !DILocalVariable(name: "this", arg: 1, scope: !92, type: !40, flags: DIFlagArtificial | DIFlagObjectPointer)
!94 = !DILocation(line: 0, scope: !92)
!95 = distinct !DISubprogram(name: "MyMethod", linkageName: "\01?MyMethod@A@@UAE_NXZ", scope: !14, file: !1, line: 1, type: !20, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !19, retainedNodes: !2)
!96 = !DILocalVariable(name: "this", arg: 1, scope: !95, type: !13, flags: DIFlagArtificial | DIFlagObjectPointer)
!97 = !DILocation(line: 0, scope: !95)
!98 = !DILocation(line: 1, column: 45, scope: !95)
!99 = distinct !DISubprogram(name: "MyMethod", linkageName: "\01?MyMethod@B@@UAE_NXZ", scope: !29, file: !1, line: 2, type: !33, isLocal: false, isDefinition: true, scopeLine: 2, flags: DIFlagPrototyped, isOptimized: false, unit: !0, declaration: !32, retainedNodes: !2)
!100 = !DILocalVariable(name: "this", arg: 1, scope: !99, type: !28, flags: DIFlagArtificial | DIFlagObjectPointer)
!101 = !DILocation(line: 0, scope: !99)
!102 = !DILocation(line: 2, column: 45, scope: !99)
