pr33136-2.c

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

C
61
字号
/* PR tree-optimization/33136 *//* { dg-do run } *//* { dg-options "-O2" } */extern void abort (void);struct S{  void *a;  int b;  int *c;};static int d, e;static struct S s;static int *__attribute__((noinline, const))foo (void){  return &s.b;}int *__attribute__((noinline))bar (int **f){  s.c = &d;  *f = &e;  /* As nothing ever takes the address of any int * field in struct S,     the write to *f can't alias with the s.c field.  */  return s.c;}int__attribute__((noinline))baz (int *x){  s.b = 1;  *x = 4;  /* Function foo takes address of an int field in struct S,     so *x can alias with the s.b field (and it does in this testcase).  */  return s.b;}int__attribute__((noinline))t (void){  int *f = (int *) 0;  return 10 * (bar (&f) != &d) + baz (foo ());}intmain (void){  if (t () != 4)    abort ();  return 0;}

⌨️ 快捷键说明

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