20030717-1.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 70 行

C
70
字号
/* PR target/11087   This testcase was miscompiled on ppc64, because basic_induction_var called   convert_modes, yet did not expect it to emit any new instructions.   Those were emitted at the end of the function and destroyed during life   analysis, while the program used uninitialized pseudos created by   convert_modes.  */struct A{  unsigned short a1;  unsigned long a2;};struct B{  int b1, b2, b3, b4, b5;};struct C{  struct B c1[1];  int c2, c3;};staticint foo (int x){  return  x < 0 ? -x : x;}int bar (struct C *x, struct A *y){  int a = x->c3;  const int b = y->a1 >> 9;  const unsigned long c = y->a2;  int d = a;  unsigned long e, f;  f = foo (c - x->c1[d].b4);  do    {      if (d <= 0)	d = x->c2;      d--;      e = foo (c-x->c1[d].b4);      if (e < f)	a = d;    }  while (d != x->c3);  x->c1[a].b4 = c + b;  return a;}intmain (){  struct A a;  struct C b;  int c;  a.a1 = 512;  a.a2 = 4242;  __builtin_memset (&b, 0, sizeof (b));  b.c1[0].b3 = 424242;  b.c2 = 1;  c = bar (&b, &a);  return 0;}

⌨️ 快捷键说明

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