brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.0 KiB · 6896b08 Raw
86 lines · plain
1; Check if landing pads are kept in a separate eh section2; RUN: llc -simplifycfg-require-and-preserve-domtree=1 < %s -mtriple=i386-unknown-linux-gnu  -function-sections -basic-block-sections=all -unique-basic-block-section-names | FileCheck %s -check-prefix=LINUX-SECTIONS3 4@_ZTIb = external dso_local constant ptr5define i32 @_Z3foob(i1 zeroext %0) #0 personality ptr @__gxx_personality_v0 {6  %2 = alloca i32, align 47  %3 = alloca i8, align 18  %4 = alloca ptr9  %5 = alloca i3210  %6 = alloca i8, align 111  %7 = zext i1 %0 to i812  store i8 %7, ptr %3, align 113  %8 = load i8, ptr %3, align 114  %9 = trunc i8 %8 to i115  br i1 %9, label %10, label %1116 1710:                                               ; preds = %118  store i32 1, ptr %2, align 419  br label %3120 2111:                                               ; preds = %122  %12 = call ptr @__cxa_allocate_exception(i64 1) #223  %13 = load i8, ptr %3, align 124  %14 = trunc i8 %13 to i125  %15 = zext i1 %14 to i826  store i8 %15, ptr %12, align 1627  invoke void @__cxa_throw(ptr %12, ptr @_ZTIb, ptr null) #328          to label %38 unwind label %1629 3016:                                               ; preds = %1131  %17 = landingpad { ptr, i32 }32          catch ptr @_ZTIb33  %18 = extractvalue { ptr, i32 } %17, 034  store ptr %18, ptr %4, align 835  %19 = extractvalue { ptr, i32 } %17, 136  store i32 %19, ptr %5, align 437  br label %2038 3920:                                               ; preds = %1640  %21 = load i32, ptr %5, align 441  %22 = call i32 @llvm.eh.typeid.for(ptr @_ZTIb) #242  %23 = icmp eq i32 %21, %2243  br i1 %23, label %24, label %3344 4524:                                               ; preds = %2046  %25 = load ptr, ptr %4, align 847  %26 = call ptr @__cxa_begin_catch(ptr %25) #248  %27 = load i8, ptr %26, align 149  %28 = trunc i8 %27 to i150  %29 = zext i1 %28 to i851  store i8 %29, ptr %6, align 152  call void @__cxa_end_catch() #253  br label %3054 5530:                                               ; preds = %2456  store i32 0, ptr %2, align 457  br label %3158 5931:                                               ; preds = %30, %1060  %32 = load i32, ptr %2, align 461  ret i32 %3262 6333:                                               ; preds = %2064  %34 = load ptr, ptr %4, align 865  %35 = load i32, ptr %5, align 466  %36 = insertvalue { ptr, i32 } undef, ptr %34, 067  %37 = insertvalue { ptr, i32 } %36, i32 %35, 168  resume { ptr, i32 } %3769 7038:                                               ; preds = %1171  unreachable72}73declare ptr @__cxa_allocate_exception(i64)74declare void @__cxa_throw(ptr, ptr, ptr)75declare i32 @__gxx_personality_v0(...)76; Function Attrs: nounwind readnone77declare i32 @llvm.eh.typeid.for(ptr) #178declare ptr @__cxa_begin_catch(ptr)79declare void @__cxa_end_catch()80 81;LINUX-SECTIONS: .section	.text._Z3foob,"ax",@progbits82;LINUX-SECTIONS: _Z3foob:83;LINUX-SECTIONS: .section       .text._Z3foob._Z3foob.__part.{{[0-9]+}},"ax",@progbits84;LINUX-SECTIONS-LABEL: _Z3foob.__part.{{[0-9]+}}:85;LINUX-SECTIONS:        calll   __cxa_begin_catch86