aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFalk Hueffner <falk@debian.org>2004-08-09 01:17:23 +0200
committerFalk Hueffner <falk@gcc.gnu.org>2004-08-09 01:17:23 +0200
commit08a02c9e08261f946b72ab944cdbb2556b91c283 (patch)
tree7385bdf57ffe89bf7268d9ccbd4db0e402a95731
parentd72372e46ac06b4db61143f91367a777089cc6f6 (diff)
downloadgcc-08a02c9e08261f946b72ab944cdbb2556b91c283.zip
gcc-08a02c9e08261f946b72ab944cdbb2556b91c283.tar.gz
gcc-08a02c9e08261f946b72ab944cdbb2556b91c283.tar.bz2
re PR tree-optimization/12517 ([tree-ssa] ICE in bsi_insert_on_edge_immediate)
PR tree-optimization/12517 * gcc.c-torture/compile/pr12517.c: New test. PR tree-optimization/12578 * gcc.c-torture/compile/pr12578.c: New test. PR tree-optimization/12899 * gcc.c-torture/compile/pr12899.c: New test. PR rtl-optimization/14692 * gcc.c-torture/compile/pr14692.c: New test. PR tree-optimization/16461 * gcc.c-torture/compile/pr16461.c: New test. From-SVN: r85698
-rw-r--r--gcc/testsuite/ChangeLog17
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr12517.c19
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr12578.c15
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr12899.c11
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr14692.c14
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr16461.c14
6 files changed, 90 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 8caed21..2fde4b2 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,20 @@
+2004-08-09 Falk Hueffner <falk@debian.org>
+
+ PR tree-optimization/12517
+ * gcc.c-torture/compile/pr12517.c: New test.
+
+ PR tree-optimization/12578
+ * gcc.c-torture/compile/pr12578.c: New test.
+
+ PR tree-optimization/12899
+ * gcc.c-torture/compile/pr12899.c: New test.
+
+ PR rtl-optimization/14692
+ * gcc.c-torture/compile/pr14692.c: New test.
+
+ PR tree-optimization/16461
+ * gcc.c-torture/compile/pr16461.c: New test.
+
2004-08-06 Janne Blomqvist <jblomqvi@cc.hut.fi>
* gfortran.dg/getenv_1.f90: New test.
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr12517.c b/gcc/testsuite/gcc.c-torture/compile/pr12517.c
new file mode 100644
index 0000000..af82db8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr12517.c
@@ -0,0 +1,19 @@
+/* PR tree-optimization/12517 */
+
+int f(void);
+void g(int);
+void h(int a, int b, int c)
+{
+ int i = f();
+
+ if (b && (i & 4))
+ g(i & 8 ? 0 : 1);
+ if (a) {
+ do {
+ if (i & 8)
+ g(0);
+ if (i & 4)
+ g(i ? 0 : 1);
+ } while (--c);
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr12578.c b/gcc/testsuite/gcc.c-torture/compile/pr12578.c
new file mode 100644
index 0000000..69afffe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr12578.c
@@ -0,0 +1,15 @@
+/* PR tree-optimization/12517 */
+
+void trivial_regexp_p(int *s, int len)
+{
+ while (--len) {
+ switch (*s++) {
+ case '\\':
+ switch (*s++) {
+ case '|':
+ ;
+ }
+ }
+ }
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr12899.c b/gcc/testsuite/gcc.c-torture/compile/pr12899.c
new file mode 100644
index 0000000..6bd4724
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr12899.c
@@ -0,0 +1,11 @@
+/* PR tree-optimization/12899 */
+
+void
+bb_getopt_ulflags (char *s)
+{
+ for (;;)
+ if (s[1])
+ do
+ s++;
+ while (*s);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr14692.c b/gcc/testsuite/gcc.c-torture/compile/pr14692.c
new file mode 100644
index 0000000..3f36b3c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr14692.c
@@ -0,0 +1,14 @@
+/* PR rtl-optimization/14692 */
+
+void assert_failed (void);
+void eidecpos_1 (unsigned char *pos, long n)
+{
+ int i;
+ for (i = 0; i < n; i++)
+ {
+ const unsigned char *dc_ptr1 = pos;
+ pos--;
+ if (dc_ptr1 - pos == 1)
+ assert_failed ();
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr16461.c b/gcc/testsuite/gcc.c-torture/compile/pr16461.c
new file mode 100644
index 0000000..b48eee2
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr16461.c
@@ -0,0 +1,14 @@
+/* PR tree-optimization/16461 */
+
+int DVDinput_read(int);
+int DVDReadBlocksPath(int offset, int block_count) {
+ int ret = 0, ret2 = 0;
+ for (;;) {
+ if (offset)
+ ret = DVDinput_read(block_count);
+ else
+ ret2 = DVDinput_read(block_count);
+ break;
+ }
+ return ret + ret2;
+}