1 /* { dg-do run } */
2
3 #include <stdlib.h>
4
5 /* Make sure we don't coalesce both incoming parms, one whose incoming
6 value is unused, to the same location, so as to overwrite one of
7 them with the incoming value of the other. */
8
9 int __attribute__((noinline, noclone))
foo(int i,int j)10 foo (int i, int j)
11 {
12 j = i; /* The incoming value for J is unused. */
13 i = 2;
14 if (j)
15 j++;
16 j += i + 1;
17 return j;
18 }
19
20 /* Same as foo, but with swapped parameters. */
21 int __attribute__((noinline, noclone))
bar(int j,int i)22 bar (int j, int i)
23 {
24 j = i; /* The incoming value for J is unused. */
25 i = 2;
26 if (j)
27 j++;
28 j += i + 1;
29 return j;
30 }
31
32 int
main(void)33 main (void)
34 {
35 if (foo (0, 1) != 3)
36 abort ();
37 if (bar (1, 0) != 3)
38 abort ();
39 return 0;
40 }
41