aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-12-06 13:45:19 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-12-06 13:45:19 +0000
commitf748cd6bb45ec5f1e7ef498d6ef9d4c67d13b664 (patch)
tree32bbd2937fb25afa4b9aa7e97af8acf24d0468bf
parentf7fb28800dea7ac262424262b3ada1acd9bb8d07 (diff)
downloadgcc-f748cd6bb45ec5f1e7ef498d6ef9d4c67d13b664.zip
gcc-f748cd6bb45ec5f1e7ef498d6ef9d4c67d13b664.tar.gz
gcc-f748cd6bb45ec5f1e7ef498d6ef9d4c67d13b664.tar.bz2
re PR tree-optimization/49997 (ICE in inline_small_functions with -fnon-call-exceptions)
2011-12-06 Richard Guenther <rguenther@suse.de> PR tree-optimization/49997 * gcc.dg/torture/pr49997.c: New testcase. From-SVN: r182049
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr49997.c25
2 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5668927..f4c61d3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2011-12-06 Richard Guenther <rguenther@suse.de>
+ PR tree-optimization/49997
+ * gcc.dg/torture/pr49997.c: New testcase.
+
+2011-12-06 Richard Guenther <rguenther@suse.de>
+
PR middle-end/51436
* g++.dg/torture/pr51436.C: New testcase.
diff --git a/gcc/testsuite/gcc.dg/torture/pr49997.c b/gcc/testsuite/gcc.dg/torture/pr49997.c
new file mode 100644
index 0000000..4ccc604
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr49997.c
@@ -0,0 +1,25 @@
+/* { dg-do compile } */
+/* { dg-options "-finline-functions -fnon-call-exceptions" } */
+
+extern int g_78, g_223;
+static int MOD(int si1, int si2) {
+ return (!si2 || (!si1 && si2)) ? si1 : (si1 % 3);
+}
+void func_65(int p_66) {
+ g_78 = MOD(p_66, 3);
+}
+void func_54(int si1) {
+ func_65(0);
+ func_65(1);
+ func_65(2);
+ while (g_223) {
+ MOD(si1, 3);
+ func_65(3);
+ func_65(4);
+ func_65(5);
+ func_65(6);
+ func_65(7);
+ func_65(8);
+ }
+}
+