mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
49 lines
808 B
Plaintext
49 lines
808 B
Plaintext
// #target: macos-x64
|
|
module inlineme;
|
|
import std::io;
|
|
|
|
fn void test1() @inline
|
|
{
|
|
io::printn("Inline!");
|
|
}
|
|
|
|
fn void test2() @noinline
|
|
{
|
|
io::printn("No inline!");
|
|
}
|
|
|
|
fn void test3()
|
|
{
|
|
io::printn("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() #3
|
|
call void @inlineme.test2() #3
|
|
call void @inlineme.test3() #3
|
|
call void @inlineme.test1() #4
|
|
call void @inlineme.test2() #4
|
|
call void @inlineme.test3() #4
|
|
call void @inlineme.test1() #3
|
|
call void @inlineme.test2()
|
|
call void @inlineme.test3()
|
|
ret void
|
|
}
|
|
|
|
attributes #3 = { alwaysinline }
|
|
attributes #4 = { noinline }
|