opt-2.c
来自「linux下编程用 编译软件」· C语言 代码 · 共 55 行
C
55 行
/* This testcase generated invalid assembly on IA-32, since %gs:0 memory load was not exposed to the compiler as memory load and mem to mem moves are not possible on IA-32. *//* { dg-do link } *//* { dg-options "-O2 -ftls-model=initial-exec" } *//* { dg-options "-O2 -ftls-model=initial-exec -march=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } *//* { dg-require-effective-target tls } */__thread int thr;struct A{ unsigned int a, b, c, d, e;};int bar (int x, unsigned long y, void *z){ return 0;}intfoo (int x, int y, const struct A *z){ struct A b; int d; b = *z; d = bar (x, y, &b); if (d == 0 && y == 0x5402) { int e = thr; d = bar (x, 0x5401, &b); if (d) { thr = e; d = 0; } else if ((z->c & 0600) != (b.c & 0600) || ((z->c & 060) && ((z->c & 060) != (b.c & 060)))) { thr = 22; d = -1; } } return d;}int main (void){ foo (1, 2, 0); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?