⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pr19633.c

📁 linux下编程用 编译软件
💻 C
字号:
/* { dg-do link } *//* { dg-options "-O2" } */struct S{  int w, x, y, z;};struct T{  int r;  struct S s;};voidfoo (int a, struct T b){  struct S *c = 0;  if (a)    c = &b.s;  b.s.w = 3;  /* Since 'c' may be pointing to NULL here, we used to flag it as     pointing anywhere, which was forcing the aliaser to mark as     call-clobbered every other variable pointed-to by 'c' ('b' in     this case).  This, in turn, caused the insertion of V_MAY_DEFs     for 'b' at this call-site, which prevented constant propagation     from 'b.s.w = 3' to 'if (b.s.w != 3)'.  */  bar (*c, a);  if (b.s.w != 3)    link_error ();}int main (){  struct T b;  foo (3, b);  return 0;}int X;int bar (struct S x, int i){  X = 3;}

⌨️ 快捷键说明

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