diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/arm/register-variables.c')
-rw-r--r-- | gcc/testsuite/gcc.target/arm/register-variables.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/arm/register-variables.c b/gcc/testsuite/gcc.target/arm/register-variables.c new file mode 100644 index 000000000..8c874b22e --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/register-variables.c @@ -0,0 +1,21 @@ +/* { dg-do run } */ +/* { dg-options "-O" } */ + +#include <stdlib.h> + +void __attribute__((noinline)) +bar(int a, int b) +{ + if (a != 43 || b != 42) + abort(); +} + +int main(void) +{ + register int r0 asm("r0") = 42; + register int r1 asm("r1") = 43; + asm volatile("": "+r" (r0), "+r" (r1)); + bar(r1, r0); + return 0; +} + |