diff options
Diffstat (limited to 'gcc/testsuite/gcc.target')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr79804.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr88178.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr92469.c | 24 |
3 files changed, 28 insertions, 4 deletions
diff --git a/gcc/testsuite/gcc.target/i386/pr79804.c b/gcc/testsuite/gcc.target/i386/pr79804.c index 08d1a3e..fcfcef7 100644 --- a/gcc/testsuite/gcc.target/i386/pr79804.c +++ b/gcc/testsuite/gcc.target/i386/pr79804.c @@ -4,7 +4,7 @@ void foo (void) { - register int r19 asm ("19"); + register int r19 asm ("19"); /* { dg-error "register specified for 'r19' is an internal GCC implementation detail" } */ - asm volatile ("# %0" : "=r"(r19)); /* { dg-error "invalid use of register" } */ -} /* { dg-error "cannot be used in 'asm' here" } */ + asm volatile ("# %0" : "=r"(r19)); +} diff --git a/gcc/testsuite/gcc.target/i386/pr88178.c b/gcc/testsuite/gcc.target/i386/pr88178.c index a5fbd35..622e1c2 100644 --- a/gcc/testsuite/gcc.target/i386/pr88178.c +++ b/gcc/testsuite/gcc.target/i386/pr88178.c @@ -4,5 +4,5 @@ void foo (void) { - register int r19 asm ("19"); + register int r19 asm ("19"); /* { dg-error "register specified for 'r19' is an internal GCC implementation detail" } */ } diff --git a/gcc/testsuite/gcc.target/i386/pr92469.c b/gcc/testsuite/gcc.target/i386/pr92469.c new file mode 100644 index 0000000..8cff36b --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr92469.c @@ -0,0 +1,24 @@ +/* PR target/92469 */ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +void +foo (void) +{ + register int x asm ("frame"); /* { dg-error "register specified for 'x' is an internal GCC implementation detail" } */ + int y = x; +} + +void +bar (void) +{ + register int x asm ("19"); /* { dg-error "register specified for 'x' is an internal GCC implementation detail" } */ + int y = x; +} + +void +baz (void) +{ + register int x asm ("argp"); /* { dg-error "register specified for 'x' is an internal GCC implementation detail" } */ + int y = x; +} |