Hello,
I came across a problem related to cross-section inlining. For the
following example,
static void foo(void) __attribute__((section ("foo")));
static void foo(void)
{
printf("Hello\n");
}
void bar(void) __attribute__((section ("bar")));
void bar(void)
{
foo();
}
I compiled with the latest mainline gcc.
gcc tst.c -O3 -S
The foo function is inlined into bar anyway even they have different
section attribute. Is this a bug or expected behaviour?
.file "tst.c"
.section .rodata.str1.1,"aMS",@progbits,1
.LC0:
.string "Hello"
.section bar,"ax",@progbits
.p2align 4,,15
.globl bar
.type bar, @function
bar:
.LFB3:
movl $.LC0, %edi
jmp puts
.LFE3:
Thanks.
Bingfeng Mei