📄 pr27528.c
字号:
/* 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -