1 /* This testcase failed because - 1 - buf was simplified into ~buf and when
2 later expanding it back into - buf + -1, -1 got lost. */
3 /* { dg-options "-fgnu89-inline" } */
4
5 extern void abort (void);
6 extern void exit (int);
7
8 static void
bar(int x)9 bar (int x)
10 {
11 if (!x)
12 abort ();
13 }
14
15 char buf[10];
16
17 inline char *
foo(char * tmp)18 foo (char *tmp)
19 {
20 asm ("" : "=r" (tmp) : "0" (tmp));
21 return tmp + 2;
22 }
23
24 int
main(void)25 main (void)
26 {
27 bar ((foo (buf) - 1 - buf) == 1);
28 exit (0);
29 }
30