pr27528.c

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

C
41
字号
/* Check that constant constraints like "i", "n" and "s" can be used in   cases where the operand is an initializer constant.  *//* { dg-require-effective-target nonpic } */int x[2] = { 1, 2 };#ifdef __OPTIMIZE__static inline void __attribute__((__always_inline__))insn1 (int x){  asm volatile ("" :: "n" (x), "i" (x));}static inline void __attribute__((__always_inline__))insn2 (const void *x){  asm volatile ("" :: "s" (x), "i" (x));}#endifvoidfoo (void){#ifdef __OPTIMIZE__  insn1 (2);  insn1 (2);  insn1 (400);  insn1 (__LINE__);  insn2 (x);  insn2 (x);  insn2 (&x[1]);  insn2 ("string");#endif  asm volatile ("" :: "s" (x), "i" (x));  /* At the time of writing, &x[1] is decomposed before reaching expand     when compiling with -O0.  */  asm volatile ("" :: "s" ("string"), "i" ("string"));  asm volatile ("" :: "s" (__FILE__), "i" (__FILE__));  asm volatile ("" :: "s" (__FUNCTION__), "i" (__FUNCTION__));}

⌨️ 快捷键说明

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