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)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 bar(void)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 main(void)33int main(void) 34 { 35 global = 1; 36 if (bar () != 0) 37 abort(); 38 39 return 0; 40 } 41