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