diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/s390/pr36822.c')
-rw-r--r-- | gcc/testsuite/gcc.target/s390/pr36822.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/s390/pr36822.c b/gcc/testsuite/gcc.target/s390/pr36822.c new file mode 100644 index 000000000..fb021f214 --- /dev/null +++ b/gcc/testsuite/gcc.target/s390/pr36822.c @@ -0,0 +1,16 @@ +/* This used to ICE on s390 due to bug in the definition of the 'R' + constraint which replaced the 'm' constraint (together with 'T') + while adding z10 support. */ + +/* { dg-do compile } */ +/* { dg-options "-O" } */ + +int boo() +{ + struct { + unsigned char pad[4096]; + unsigned long bar; + } *foo; + asm volatile( "" : "=m" (*(unsigned long long*)(foo->bar)) + : "a" (&foo->bar)); +} |