1; RUN: %lli -jit-kind=mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s 2; XFAIL: target={{(mips|mipsel)-.*}}, target={{(i686|i386).*}}, target={{(aarch64|arm).*}} 3 4define i32 @main() nounwind { 5entry: 6 call void @lazily_compiled_address_is_consistent() 7 ret i32 0 8} 9 10; Test PR3043: @test should have the same address before and after 11; it's JIT-compiled. 12@funcPtr = common global ptr null, align 4 13@lcaic_failure = internal constant [46 x i8] c"@lazily_compiled_address_is_consistent failed\00" 14 15define void @lazily_compiled_address_is_consistent() nounwind { 16entry: 17 store ptr @test, ptr @funcPtr 18 %pass = tail call i1 @test() ; <i32> [#uses=1] 19 br i1 %pass, label %pass_block, label %fail_block 20pass_block: 21 ret void 22fail_block: 23 call i32 @puts(ptr @lcaic_failure) 24 call void @exit(i32 1) 25 unreachable 26} 27 28define i1 @test() nounwind { 29entry: 30 %tmp = load ptr, ptr @funcPtr 31 %eq = icmp eq ptr %tmp, @test 32 ret i1 %eq 33} 34 35declare i32 @puts(ptr) noreturn 36declare void @exit(i32) noreturn 37