mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 20:11:17 +00:00
50 lines
877 B
C
50 lines
877 B
C
// #target: macos-x64
|
|
module inlineme;
|
|
import std::io;
|
|
|
|
fn void test1() @inline
|
|
{
|
|
io::println("Inline!");
|
|
}
|
|
|
|
fn void test2() @noinline
|
|
{
|
|
io::println("No inline!");
|
|
}
|
|
|
|
fn void test3()
|
|
{
|
|
io::println("Plain");
|
|
}
|
|
|
|
fn void main()
|
|
{
|
|
test1() @inline;
|
|
test2() @inline;
|
|
test3() @inline;
|
|
test1() @noinline;
|
|
test2() @noinline;
|
|
test3() @noinline;
|
|
test1();
|
|
test2();
|
|
test3();
|
|
}
|
|
// #expect: inlineme.ll
|
|
|
|
entry:
|
|
call void @inlineme_test1() #2
|
|
call void @inlineme_test2() #2
|
|
call void @inlineme_test3() #2
|
|
call void @inlineme_test1() #3
|
|
call void @inlineme_test2() #3
|
|
call void @inlineme_test3() #3
|
|
call void @inlineme_test1() #2
|
|
call void @inlineme_test2()
|
|
call void @inlineme_test3()
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { nounwind }
|
|
attributes #1 = { noinline nounwind }
|
|
attributes #2 = { alwaysinline }
|
|
attributes #3 = { noinline } |