20030826-2.c

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

C
65
字号
/* { dg-do run } *//* { dg-options "-O2 -fomit-frame-pointer" } *//* { dg-options "-O2 -fomit-frame-pointer -march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */extern void abort (void);extern void exit (int);struct S{  int *a;  unsigned char *b, c;};int u, v, w;voidfoo (unsigned short x){  u += x;}intbar (struct S **x, int *y){  w += *y;  *y = w + 25;  return 0;}intbaz (struct S **x){  struct S *y = *x;  unsigned char *a = y->b;  foo (*a);  if (__builtin_expect (y->c != 0 || y->a == &v, 0))    return 1;  if (__builtin_expect (*a == 1, 0))    {      int a, b = bar (x, &a);      if (a)	return b;    }  return 0;}intmain (void){  struct S a, *b = &a;  unsigned char c;  __builtin_memset (b, 0, sizeof (a));  a.a = &v;  a.b = &c;  if (baz (&b) != 1)    abort ();  exit (0);}

⌨️ 快捷键说明

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