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