| /* { dg-do run } */ |
| |
| #ifdef __SIZE_TYPE__ |
| typedef __SIZE_TYPE__ uintptr_t; |
| #elif (__SIZEOF_LONG_LONG__ == __SIZEOF_POINTER__) |
| typedef unsigned long long uintptr_t; |
| #elif (__SIZEOF_LONG__ == __SIZEOF_POINTER__) |
| typedef unsigned long uintptr_t; |
| #elif (__SIZEOF_INT__ == __SIZEOF_POINTER__) |
| typedef unsigned int uintptr_t; |
| #else |
| #error Add target support here |
| #endif |
| |
| void __attribute__((noinline)) |
| foo(uintptr_t l) |
| { |
| int *p = (int *)l; |
| *p = 1; |
| } |
| |
| extern void abort (void); |
| int main() |
| { |
| int b = 0; |
| uintptr_t l = (uintptr_t)&b; |
| foo(l); |
| if (b != 1) |
| abort (); |
| return 0; |
| } |