aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorChristophe Lyon <christophe.lyon@linaro.org>2016-03-24 14:03:44 +0100
committerLinaro Code Review <review@review.linaro.org>2016-04-11 09:14:47 +0000
commit65c6f3a40f16837c5bbdc7efccdafc0bf31c8ba6 (patch)
treee223ea974660c547206bf2b1cd373bd6cc912792 /gcc/testsuite
parent5bfeac1c5f22f486cc9e3a2d73bb04c0dffb0f4e (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.c45
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;
+}