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