[win/asan] GetInstructionSize: Fix `83 E4 XX` to return 3. (#119644)
[llvm-project.git] / llvm / test / CodeGen / ARM / 2009-08-31-LSDA-Name.ll
blob73859a8be575889100292180030846d7b2133b29
1 ; RUN: llc < %s -mtriple=arm-apple-darwin9 | FileCheck %s
3 ; CHECK: ldr r0, [[CPI_PERSONALITY:[A-Za-z0-9_]+]]
4 ; CHECK: ldr r0, [[CPI_LSDA:[A-Za-z0-9_]+]]
5 ; CHECK: [[CPI_LSDA]]:
6 ; CHECK: .long  [[LSDA_LABEL:[A-Za-z0-9_]+]]-
7 ; CHECK: [[LSDA_LABEL]]:
8 ; CHECK: .byte   255                     @ @LPStart Encoding = omit
10 %struct.A = type { ptr }
12 define void @"\01-[MyFunction Name:]"() personality ptr @__gxx_personality_sj0 {
13 entry:
14   %save_filt.1 = alloca i32
15   %save_eptr.0 = alloca ptr
16   %a = alloca %struct.A
17   %eh_exception = alloca ptr
18   %eh_selector = alloca i32
19   %"alloca point" = bitcast i32 0 to i32
20   call void @_ZN1AC1Ev(ptr %a)
21   invoke void @_Z3barv()
22           to label %invcont unwind label %lpad
24 invcont:                                          ; preds = %entry
25   call void @_ZN1AD1Ev(ptr %a) nounwind
26   br label %return
28 bb:                                               ; preds = %ppad
29   %eh_select = load i32, ptr %eh_selector
30   store i32 %eh_select, ptr %save_filt.1, align 4
31   %eh_value = load ptr, ptr %eh_exception
32   store ptr %eh_value, ptr %save_eptr.0, align 4
33   call void @_ZN1AD1Ev(ptr %a) nounwind
34   %0 = load ptr, ptr %save_eptr.0, align 4
35   store ptr %0, ptr %eh_exception, align 4
36   %1 = load i32, ptr %save_filt.1, align 4
37   store i32 %1, ptr %eh_selector, align 4
38   br label %Unwind
40 return:                                           ; preds = %invcont
41   ret void
43 lpad:                                             ; preds = %entry
44   %exn = landingpad {ptr, i32}
45            cleanup
46   %eh_ptr = extractvalue {ptr, i32} %exn, 0
47   store ptr %eh_ptr, ptr %eh_exception
48   %eh_select2 = extractvalue {ptr, i32} %exn, 1
49   store i32 %eh_select2, ptr %eh_selector
50   br label %ppad
52 ppad:                                             ; preds = %lpad
53   br label %bb
55 Unwind:                                           ; preds = %bb
56   %eh_ptr3 = load ptr, ptr %eh_exception
57   call void @_Unwind_SjLj_Resume(ptr %eh_ptr3)
58   unreachable
61 define linkonce_odr void @_ZN1AC1Ev(ptr %this) {
62 entry:
63   %this_addr = alloca ptr
64   %"alloca point" = bitcast i32 0 to i32
65   store ptr %this, ptr %this_addr
66   %0 = call ptr @_Znwm(i32 4)
67   %1 = load ptr, ptr %this_addr, align 4
68   store ptr %0, ptr %1, align 4
69   br label %return
71 return:                                           ; preds = %entry
72   ret void
75 declare ptr @_Znwm(i32)
77 define linkonce_odr void @_ZN1AD1Ev(ptr %this) nounwind {
78 entry:
79   %this_addr = alloca ptr
80   %"alloca point" = bitcast i32 0 to i32
81   store ptr %this, ptr %this_addr
82   %0 = load ptr, ptr %this_addr, align 4
83   %1 = load ptr, ptr %0, align 4
84   call void @_ZdlPv(ptr %1) nounwind
85   br label %bb
87 bb:                                               ; preds = %entry
88   br label %return
90 return:                                           ; preds = %bb
91   ret void
94 declare void @_ZdlPv(ptr) nounwind
96 declare void @_Z3barv()
98 declare i32 @llvm.eh.typeid.for(ptr) nounwind
100 declare i32 @__gxx_personality_sj0(...)
102 declare void @_Unwind_SjLj_Resume(ptr)