/* { 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; }