Files
c3c/test/test_suite/expressions/call_inline.c3t
2021-08-03 12:02:36 +02:00

49 lines
863 B
C

module inlineme;
import std::io;
func void test1() @inline
{
io::println("Inline!");
}
func void test2() @noinline
{
io::println("No inline!");
}
func void test3()
{
io::println("Plain");
}
func 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 }