3 ;; Reference to a label that gets deleted.
4 define i8* @test1() nounwind {
6 ret i8* blockaddress(@test1b, %test_label)
9 define i32 @test1b() nounwind {
19 ;; Issues with referring to a label that gets RAUW'd later.
20 define i32 @test2a() nounwind {
22 %target = bitcast i8* blockaddress(@test2b, %test_label) to i8*
24 call i32 @test2b(i8* %target)
29 define i32 @test2b(i8* %target) nounwind {
31 indirectbr i8* %target, [label %test_label]
34 ; assume some code here...
41 ; Issues with a BB that gets RAUW'd to another one after references are
43 define void @test3(i8** %P, i8** %Q) nounwind {
45 store i8* blockaddress(@test3b, %test_label), i8** %P
46 store i8* blockaddress(@test3b, %ret), i8** %Q
50 define i32 @test3b() nounwind {
62 define i64 @test4a() {
63 %target = bitcast i8* blockaddress(@test4b, %usermain) to i8*
64 %ret = call i64 @test4b(i8* %target)
69 define i64 @test4b(i8* %Code) {
71 indirectbr i8* %Code, [label %usermain]
73 br label %label_line_0
76 br label %label_line_1
79 %target = ptrtoint i8* blockaddress(@test4b, %label_line_0) to i64