aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2015-09-20 20:07:58 +0200
committerUros Bizjak <uros@gcc.gnu.org>2015-09-20 20:07:58 +0200
commit7f050a11fc6a20db7afdd3986dbd8669f3ddb68d (patch)
treeed22ea0dd572358cbb6d13e9ca3f76f2fbf64cc8
parent56547ff78720f78bf32749d23c42c48db6ab7b78 (diff)
downloadgcc-7f050a11fc6a20db7afdd3986dbd8669f3ddb68d.zip
gcc-7f050a11fc6a20db7afdd3986dbd8669f3ddb68d.tar.gz
gcc-7f050a11fc6a20db7afdd3986dbd8669f3ddb68d.tar.bz2
re PR middle-end/67619 (ICE at -O1 and above on x86_64-linux-gnu in int_mode_for_mode, at stor-layout.c:425)
PR middle-end/67619 * lib/target-supports.exp (check_effective_target_builtin_eh_return): New procedure. From-SVN: r227952
-rw-r--r--gcc/testsuite/ChangeLog2
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr67619.c1
-rw-r--r--gcc/testsuite/lib/target-supports.exp10
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 305d6a8..5fd91c1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -121,6 +121,8 @@
PR middle-end/67619
* gcc.dg/torture/pr67619.c: New test.
+ * lib/target-supports.exp (check_effective_target_builtin_eh_return):
+ New procedure.
2015-09-18 Alan Lawrence <alan.lawrence@arm.com>
diff --git a/gcc/testsuite/gcc.dg/torture/pr67619.c b/gcc/testsuite/gcc.dg/torture/pr67619.c
index e441ee9..9c6bb6e 100644
--- a/gcc/testsuite/gcc.dg/torture/pr67619.c
+++ b/gcc/testsuite/gcc.dg/torture/pr67619.c
@@ -1,4 +1,5 @@
/* { dg-do compile } */
+/* { dg-require-effective-target builtin_eh_return } */
void
foo ()
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index a465eb1..3088369 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -6449,3 +6449,13 @@ proc check_effective_target_comdat_group {} {
int (*fn) () = foo;
}]
}
+
+# Return 1 if target supports __builtin_eh_return
+proc check_effective_target_builtin_eh_return { } {
+ return [check_no_compiler_messages builtin_eh_return object {
+ void test (long l, void *p)
+ {
+ __builtin_eh_return (l, p);
+ }
+ } "" ]
+}