| ; Test that global constructors behind casts are run |
| ; |
| ; RUN: lli -jit-kind=orc %s | FileCheck %s |
| ; |
| ; CHECK: constructor |
| |
| declare i32 @puts(i8*) |
| |
| @.str = private constant [12 x i8] c"constructor\00" |
| @llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* bitcast (i32 ()* @constructor to void ()*), i8* null }] |
| |
| define internal i32 @constructor() #0 { |
| %call = tail call i32 @puts(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) |
| ret i32 0 |
| } |
| |
| define i32 @main() { |
| ret i32 0 |
| } |