blob: 0631850be5fa6cca6d8c285e7a22f074c526a5e8 [file] [log] [blame]
; RUN: llc < %s | FileCheck %s
; CHECK: .long .Ltmp6-.Ltmp12 # Call between .Ltmp12 and .Ltmp6
; We used to crash in filetype=obj when computing a negative value.
; RUN: llc -filetype=obj < %s
target triple = "powerpc--netbsd"
@_ZTI1I = external constant { i8*, i8* }
define void @f(i8 %foo, i32 %bar) personality i8* bitcast (void ()* @g to i8*) {
invoke void @g()
to label %try.cont unwind label %lpad
lpad: ; preds = %0
%tmp = landingpad { i8*, i32 }
catch i8* bitcast ({ i8*, i8* }* @_ZTI1I to i8*)
br i1 undef, label %catch10, label %catch
catch10: ; preds = %lpad
%tmp8 = load i32, i32* undef, align 4
%conv.i.i = zext i8 %foo to i32
%cond.i.i = select i1 undef, i32 %conv.i.i, i32 %tmp8
invoke void @_Z24__put_character_sequenceIccEvR1AIT_T0_Ej(i32 %cond.i.i)
to label %invoke.cont20 unwind label %lpad15
invoke.cont20: ; preds = %catch10
ret void
try.cont: ; preds = %0
ret void
catch: ; preds = %lpad
%tmp14 = load i32, i32* undef, align 4
%conv.i.i34 = zext i8 %foo to i32
%cond.i.i35 = select i1 undef, i32 %conv.i.i34, i32 %tmp14
invoke void @_Z24__put_character_sequenceIccEvR1AIT_T0_Ej(i32 %cond.i.i35)
to label %invoke.cont8 unwind label %lpad3
invoke.cont8: ; preds = %call2.i.i.noexc36
ret void
lpad3: ; preds = %call2.i.i.noexc36, %catch
%tmp16 = landingpad { i8*, i32 }
cleanup
invoke void @g()
to label %eh.resume unwind label %terminate.lpad
lpad15: ; preds = %catch10
%tmp19 = landingpad { i8*, i32 }
cleanup
invoke void @g()
to label %eh.resume unwind label %terminate.lpad
eh.resume: ; preds = %lpad15, %lpad3
ret void
terminate.lpad: ; preds = %lpad15, %lpad3
%tmp22 = landingpad { i8*, i32 }
catch i8* null
ret void
}
declare void @g()
declare void @_Z24__put_character_sequenceIccEvR1AIT_T0_Ej(i32)