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
4extern void abort(void);
5
6typedef __SIZE_TYPE__ size_t;
7
8int global;
9
10static 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
21int 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
33int main(void)
34{
35  global = 1;
36  if (bar () != 0)
37    abort();
38
39  return 0;
40}
41