20061220-1.c
来自「用于进行gcc测试」· C语言 代码 · 共 73 行
C
73 行
/* PR middle-end/30262 */extern void abort (void);intfoo (void){ unsigned int x = 0; void nested (void) { x = 254; } nested (); asm volatile ("" :: "r" (x)); asm volatile ("" :: "m" (x)); asm volatile ("" :: "mr" (x)); asm volatile ("" : "=r" (x) : "0" (x)); asm volatile ("" : "=m" (x) : "m" (x)); return x;}intbar (void){ unsigned int x = 0; void nested (void) { asm volatile ("" :: "r" (x)); asm volatile ("" :: "m" (x)); asm volatile ("" :: "mr" (x)); x += 4; asm volatile ("" : "=r" (x) : "0" (x)); asm volatile ("" : "=m" (x) : "m" (x)); } nested (); return x;}intbaz (void){ unsigned int x = 0; void nested (void) { void nested2 (void) { asm volatile ("" :: "r" (x)); asm volatile ("" :: "m" (x)); asm volatile ("" :: "mr" (x)); x += 4; asm volatile ("" : "=r" (x) : "0" (x)); asm volatile ("" : "=m" (x) : "m" (x)); } nested2 (); nested2 (); } nested (); return x;}intmain (void){ if (foo () != 254 || bar () != 4 || baz () != 8) abort (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?