20071219-1.c

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

C
72
字号
/* PR c++/34459 */extern void abort (void);extern void *memset (void *s, int c, __SIZE_TYPE__ n);struct S{  char s[25];};struct S *p;void __attribute__((noinline))foo (struct S *x, int set){  int i;  for (i = 0; i < sizeof (x->s); ++i)    if (x->s[i] != 0)      abort ();    else if (set)      x->s[i] = set;  p = x;}void __attribute__((noinline))test1 (void){  struct S a;  memset (&a.s, '\0', sizeof (a.s));  foo (&a, 0);  struct S b = a;  foo (&b, 1);  b = a;  b = b;  foo (&b, 0);}void __attribute__((noinline))test2 (void){  struct S a;  memset (&a.s, '\0', sizeof (a.s));  foo (&a, 0);  struct S b = a;  foo (&b, 1);  b = a;  b = *p;  foo (&b, 0);}void __attribute__((noinline))test3 (void){  struct S a;  memset (&a.s, '\0', sizeof (a.s));  foo (&a, 0);  struct S b = a;  foo (&b, 1);  *p = a;  *p = b;  foo (&b, 0);}intmain (void){  test1 ();  test2 ();  test3 ();  return 0;}

⌨️ 快捷键说明

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