wstrict-aliasing-bogus-ref-all.c

来自「用于进行gcc测试」· C语言 代码 · 共 42 行

C
42
字号
/* { dg-do compile } *//* { dg-options "-O2 -Wall" } */struct g { long a; };unsigned long f(struct g *a) { return *(unsigned long *)&a->a; }struct A{  void *a;};int g(const struct A *x, long *y){  typedef long __attribute__ ((may_alias)) long_a;  *y = *(const long_a *) (&x->a);  return 1;}void *a;intf0 (long *y){  *y = *(const long *) &a; /* { dg-warning "will break" } */  return 1;}intf1 (long *y){  typedef long __attribute__ ((may_alias)) long_a;  *y = *(const long_a *) &a;  return 1;}intf2 (long *y){  *y = *(const long *) &a; /* { dg-warning "will break" } */  return 1;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?