RISC-V: Add tests for constraints "i" and "s"
The constraints "i" and "s" can be used with a symbol that binds externally, e.g. ``` namespace ns { extern int var, a[4]; } void foo() { asm(".pushsection .xxx,\"aw\"; .dc.a %0; .popsection" :: "s"(&ns::var)); asm(".reloc ., BFD_RELOC_NONE, %0" :: "s"(&ns::a[3])); } ``` gcc/testsuite/ChangeLog: * gcc.target/riscv/asm-raw-symbol.c: New test.
This commit is contained in:
parent
98004ca00e
commit
9ca4c1bf08
1 changed files with 14 additions and 0 deletions
14
gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c
Normal file
14
gcc/testsuite/gcc.target/riscv/asm-raw-symbol.c
Normal file
|
@ -0,0 +1,14 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-fpic" } */
|
||||
|
||||
extern int var, arr[2][2];
|
||||
|
||||
void
|
||||
test (void)
|
||||
{
|
||||
__asm__ ("@ %0" : : "i"(&var));
|
||||
__asm__ ("@ %0 %1 %2" : : "s"(&var), "s"(&arr[1][1]), "s"(test));
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler "@ var arr\\+12 test" } } */
|
||||
/* { dg-final { scan-assembler "@ var" } } */
|
Loading…
Add table
Reference in a new issue