xref: /aosp_15_r20/external/elfutils/tests/testfile_parameter_ref.c (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker // gcc -g -O2 -o parameter_ref parameter_ref.c
2*7304104dSAndroid Build Coastguard Worker 
3*7304104dSAndroid Build Coastguard Worker volatile int vv;
4*7304104dSAndroid Build Coastguard Worker 
5*7304104dSAndroid Build Coastguard Worker /* Don't inline, but do allow clone to create specialized versions.  */
6*7304104dSAndroid Build Coastguard Worker static __attribute__((noinline)) int
foo(int x,int y,int z)7*7304104dSAndroid Build Coastguard Worker foo (int x, int y, int z)
8*7304104dSAndroid Build Coastguard Worker {
9*7304104dSAndroid Build Coastguard Worker   int a = x * 2;
10*7304104dSAndroid Build Coastguard Worker   int b = y * 2;
11*7304104dSAndroid Build Coastguard Worker   int c = z * 2;
12*7304104dSAndroid Build Coastguard Worker   vv++;
13*7304104dSAndroid Build Coastguard Worker   return x + z;
14*7304104dSAndroid Build Coastguard Worker }
15*7304104dSAndroid Build Coastguard Worker 
16*7304104dSAndroid Build Coastguard Worker int
main(int x,char ** argv)17*7304104dSAndroid Build Coastguard Worker main (int x, char **argv)
18*7304104dSAndroid Build Coastguard Worker {
19*7304104dSAndroid Build Coastguard Worker   return foo (x, 2, 3) + foo (x, 4, 3) + foo (x + 6, x, 3) + x;
20*7304104dSAndroid Build Coastguard Worker }
21