; This test shows an sret function that is used as an operand to a bitcast.
; StructRetPromotion used to assume that a function was only used by call or
; invoke instructions, making this code cause an assertion failure.

; We're mainly testing for opt not to crash, but we'll check to see if the sret
; attribute is still there for good measure.
; RUN: opt < %s -sretpromotion -S | grep sret

%struct.S = type <{ i32, i32 }>

define i32 @main() {
entry:
        %bar = bitcast void (%struct.S*)* @foo to i32 ()*
	ret i32 undef
}

define internal void @foo(%struct.S* sret) {
entry:
	ret void
}
