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
5extern void abort (void);
6extern void exit (int);
7
8static void
9bar (int x)
10{
11  if (!x)
12    abort ();
13}
14
15char buf[10];
16
17inline char *
18foo (char *tmp)
19{
20  asm ("" : "=r" (tmp) : "0" (tmp));
21  return tmp + 2;
22}
23
24int
25main (void)
26{
27  bar ((foo (buf) - 1 - buf) == 1);
28  exit (0);
29}
30