1;; Verify that @LPStart is omitted when there are no landing pads. This test 2;; uses an unkown personality to force emitting the exception table. 3 4; RUN: llc -basic-block-sections=all -mtriple=x86_64 < %s | FileCheck %s 5 6declare void @throwit() 7declare i32 @__unknown_ehpersonality(...) 8 9define void @foo(i1 %cond) uwtable personality ptr @__unknown_ehpersonality { 10entry: 11 br i1 %cond, label %cond.true, label %cond.false 12 13cond.true: ; preds = %entry 14 call void @throwit() 15 unreachable 16 17cond.false: ; preds = %entry 18 ret void 19} 20 21; CHECK: GCC_except_table0: 22; CHECK-NEXT: .Lexception0: 23; CHECK-NEXT: .byte 255 # @LPStart Encoding = omit 24; CHECK-NEXT: .byte 255 # @TType Encoding = omit 25; CHECK-NEXT: .byte 1 # Call site Encoding = uleb128 26; CHECK-NEXT: .uleb128 .Laction_table_base0-.Lcst_begin0 27; CHECK-NEXT: .Lcst_begin0: 28; CHECK-NEXT: .Lexception1: 29; CHECK-NEXT: .byte 255 # @LPStart Encoding = omit 30; CHECK-NEXT: .byte 255 # @TType Encoding = omit 31; CHECK-NEXT: .byte 1 # Call site Encoding = uleb128 32; CHECK-NEXT: .uleb128 .Laction_table_base0-.Lcst_begin1 33; CHECK-NEXT: .Lcst_begin1: 34; CHECK-NEXT: .Lexception2: 35; CHECK-NEXT: .byte 255 # @LPStart Encoding = omit 36; CHECK-NEXT: .byte 255 # @TType Encoding = omit 37; CHECK-NEXT: .byte 1 # Call site Encoding = uleb128 38; CHECK-NEXT: .uleb128 .Laction_table_base0-.Lcst_begin2 39; CHECK-NEXT: .Lcst_begin2: 40; CHECK-NEXT: .uleb128 foo.__part.2-foo.__part.2 # >> Call Site 1 << 41; CHECK-NEXT: .uleb128 .LBB_END0_2-foo.__part.2 # Call between foo.__part.2 and .LBB_END0_2 42; CHECK-NEXT: .byte 0 # has no landing pad 43; CHECK-NEXT: .byte 0 # On action: cleanup 44; CHECK-NEXT: .Laction_table_base0: 45