diff options
author | Christophe Lyon <christophe.lyon@linaro.org> | 2016-03-24 14:03:44 +0100 |
---|---|---|
committer | Linaro Code Review <review@review.linaro.org> | 2016-04-11 09:14:47 +0000 |
commit | 65c6f3a40f16837c5bbdc7efccdafc0bf31c8ba6 (patch) | |
tree | e223ea974660c547206bf2b1cd373bd6cc912792 /gcc/testsuite | |
parent | 5bfeac1c5f22f486cc9e3a2d73bb04c0dffb0f4e (diff) |
gcc/
Backport from trunk r234453.
2016-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/70370
* gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
with register bases.
gcc/testsuite/
Backport from trunk r234453.
2016-03-24 Richard Biener <rguenther@suse.de>
PR middle-end/70370
* gcc.dg/torture/pr70370.c: New testcase.
Change-Id: I84cf43f0be3c29dd6cfe6c10999397fd89d81c1a
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr70370.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/torture/pr70370.c b/gcc/testsuite/gcc.dg/torture/pr70370.c new file mode 100644 index 00000000000..d077bee3f0f --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr70370.c @@ -0,0 +1,45 @@ +/* { dg-do compile } */ + +_Complex float +test1 (_Complex float f) +{ + __asm__ ("" : "+r" (__real f)); + return f; +} + +_Complex float +test2 (_Complex float f) +{ + __asm__ ("" : "=r" (__real f)); + return f; +} + +struct X { int i; }; + +struct X +test3 (struct X x) +{ + __asm__ ("" : "=r" (x.i)); + return x; +} + +struct X +test4 (struct X x) +{ + __asm__ ("" : "+r" (x.i)); + return x; +} + +struct X +test5 (struct X x) +{ + __asm__ ("" : "=r" (x)); + return x; +} + +struct X +test6 (struct X x) +{ + __asm__ ("" : "+r" (x)); + return x; +} |