20020411-1.c

来自「linux下的gcc编译器」· C语言 代码 · 共 55 行

C
55
字号
/* PR c/6223   This testcase ICEd in internal check because a constant was not truncated   for its mode.  *//* { dg-do compile } *//* { dg-options "-O2" } *//* { dg-options "-O2 -march=i686" { target i?86-*-* } } */#if __INT_MAX__ > 32767typedef struct{  unsigned a : 16;  unsigned b : 16;  unsigned c : 5;  unsigned d : 2;  unsigned e : 1;  unsigned f : 4;  unsigned g : 1;  unsigned h : 1;  unsigned i : 1;  unsigned j : 1;} T;inline voidfoo (T *x, unsigned int y){  if ((x->j = (y >= 0x100000)))    y >>= 12;  x->a = y;  x->f = (y >> 16);}void __attribute__((noinline))bar (T *x){}voidbaz (unsigned int x, unsigned char y){  T t;  foo (&t, x - 1);  t.e = 1;  t.c = y;  t.g = 0;  t.h = 0;  t.i = (y & 0x40) != 0;  if (x == 1)    foo (&t, 1);  bar (&t);}#endif /* __INT_MAX__ */

⌨️ 快捷键说明

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