1 /* This was failing on Alpha because the comparison (p != -1) was rewritten
2    as (p+1 != 0) and p+1 isn't allowed to wrap for pointers.  */
3 
4 extern void abort(void);
5 
6 typedef __SIZE_TYPE__ size_t;
7 
8 int global;
9 
foo(int p)10 static void *foo(int p)
11 {
12   if (p == 0)
13    {
14       global++;
15       return &global;
16    }
17 
18   return (void *)(size_t)-1;
19 }
20 
bar(void)21 int bar(void)
22 {
23   void *p;
24 
25   p = foo(global);
26   if (p != (void *)(size_t)-1)
27     return 1;
28 
29   global++;
30   return 0;
31 }
32 
main(void)33 int main(void)
34 {
35   global = 1;
36   if (bar () != 0)
37     abort();
38 
39   return 0;
40 }
41