1; RUN: %lli_mcjit -disable-lazy-compilation=false -relocation-model=pic -code-model=small %s 2; XFAIL: mips, i686, i386, 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 i1 ()* 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 i1 ()* @test, i1 ()** @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(i8* getelementptr([46 x i8]* @lcaic_failure, i32 0, i32 0)) 24 call void @exit(i32 1) 25 unreachable 26} 27 28define i1 @test() nounwind { 29entry: 30 %tmp = load i1 ()** @funcPtr 31 %eq = icmp eq i1 ()* %tmp, @test 32 ret i1 %eq 33} 34 35declare i32 @puts(i8*) noreturn 36declare void @exit(i32) noreturn 37