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