103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes// gcc -g -O2 -o entry_value entry_value.c 203333823c75a1c1887e923828113a1b0fd12020cElliott Hughesint __attribute__((noinline, noclone)) foo (int x, int y) 303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes{ 403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes return x + y; 503333823c75a1c1887e923828113a1b0fd12020cElliott Hughes} 603333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 703333823c75a1c1887e923828113a1b0fd12020cElliott Hughesint __attribute__((noinline, noclone)) bar (int x, int y) 803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes{ 903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes int z; 1003333823c75a1c1887e923828113a1b0fd12020cElliott Hughes z = foo (x, y); 1103333823c75a1c1887e923828113a1b0fd12020cElliott Hughes z += foo (y, x); 1203333823c75a1c1887e923828113a1b0fd12020cElliott Hughes return z; 1303333823c75a1c1887e923828113a1b0fd12020cElliott Hughes} 1403333823c75a1c1887e923828113a1b0fd12020cElliott Hughes 1503333823c75a1c1887e923828113a1b0fd12020cElliott Hughesint 1603333823c75a1c1887e923828113a1b0fd12020cElliott Hughesmain (int argc, char **argv) 1703333823c75a1c1887e923828113a1b0fd12020cElliott Hughes{ 1803333823c75a1c1887e923828113a1b0fd12020cElliott Hughes return bar (argc + 1, argc - 1); 1903333823c75a1c1887e923828113a1b0fd12020cElliott Hughes} 20