/* { dg-do compile } */ /* { dg-options "-O2 -Wall" } */ typedef int T __attribute__((may_alias)); extern T *p; extern int *p; extern int *p2; extern T *p2; void fn1 (T); void fn1 (int); void fn2 (int); void fn2 (T); /* Ensure that the composite types have may_alias. */ void f (long *i) { *i = *(__typeof (*p) *) &p; asm ("" : : "r" (*p)); *i = *(__typeof (*p2) *) &p2; asm ("" : : "r" (*p2)); }