Skip to content

Instantly share code, notes, and snippets.

@ytomino
Last active August 29, 2015 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ytomino/f831649c2a40e47c45e4 to your computer and use it in GitHub Desktop.
Save ytomino/f831649c2a40e47c45e4 to your computer and use it in GitHub Desktop.
extern inline int extinl (int x) {return x;}
inline int norinl (int x) {return x;}
static inline int stainl (int x) {return x;}
extern void dummy(int x);
void test(void)
{
dummy(extinl(1));
dummy(norinl(1));
dummy(stainl(1));
}
/* ==== gcc 4.9 ====
% gcc -c extinl.c && nm extinl.o
0000000000000058 s EH_frame1
U _dummy
U _extinl
0000000000000000 T _norinl
000000000000000c t _stainl
0000000000000018 T _test
% gcc -c -std=c99 extinl.c && nm extinl.o
0000000000000058 s EH_frame1
U _dummy
0000000000000000 T _extinl
U _norinl
000000000000000c t _stainl
0000000000000018 T _test
% gcc -c -O extinl.c && nm extinl.o
0000000000000030 s EH_frame1
U _dummy
0000000000000000 T _norinl
0000000000000003 T _test
% gcc -c -O -std=gnu99 extinl.c && nm extinl.o
0000000000000030 s EH_frame1
U _dummy
0000000000000000 T _extinl
0000000000000003 T _test
*/
/* ==== gcc 4.2 ====
% gcc -c extinl.c && nm extinl.o
0000000000000058 s EH_frame1
U _dummy
U _extinl
0000000000000000 T _norinl
0000000000000070 S _norinl.eh
0000000000000045 t _stainl
00000000000000d0 s _stainl.eh
000000000000000c T _test
00000000000000a0 S _test.eh
% gcc -c -std=c99 extinl.c && nm extinl.o
0000000000000058 s EH_frame1
U _dummy
0000000000000000 T _extinl
0000000000000070 S _extinl.eh
U _norinl
0000000000000045 t _stainl
00000000000000d0 s _stainl.eh
000000000000000c T _test
00000000000000a0 S _test.eh
% gcc -c -O extinl.c && nm extinl.o
0000000000000030 s EH_frame1
U _dummy
0000000000000000 T _norinl
0000000000000048 S _norinl.eh
0000000000000008 T _test
0000000000000078 S _test.eh
% gcc -c -O -std=c99 extinl.c && nm extinl.o
0000000000000030 s EH_frame1
U _dummy
0000000000000000 T _extinl
0000000000000048 S _extinl.eh
0000000000000008 T _test
0000000000000078 S _test.eh
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment