aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2011-10-26 09:33:56 +0000
committerTom de Vries <vries@gcc.gnu.org>2011-10-26 09:33:56 +0000
commit6c137ca0a2c514c3d8003b4a38e9b0d1cb3237b2 (patch)
tree9155004ae1dc166bcf6f7aa78fce03a25ef0ac49
parent9e1d5f491f78069261227aa55ce43879e427c51a (diff)
downloadgcc-6c137ca0a2c514c3d8003b4a38e9b0d1cb3237b2.zip
gcc-6c137ca0a2c514c3d8003b4a38e9b0d1cb3237b2.tar.gz
gcc-6c137ca0a2c514c3d8003b4a38e9b0d1cb3237b2.tar.bz2
re PR tree-optimization/50763 (ICE: verify_gimple failed: missing PHI def with -ftree-tail-merge)
2011-10-26 Tom de Vries <tom@codesourcery.com> PR tree-optimization/50763 * gcc.dg/pr50763-2.c: New test. From-SVN: r180519
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr50763-2.c46
2 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index dbe2481..2c9026e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-26 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/50763
+ * gcc.dg/pr50763-2.c: New test.
+
2011-10-25 Joseph Myers <joseph@codesourcery.com>
* gcc.dg/format/ms_c90-printf-1.c, gcc.dg/format/ms_c90-scanf-1.c:
diff --git a/gcc/testsuite/gcc.dg/pr50763-2.c b/gcc/testsuite/gcc.dg/pr50763-2.c
new file mode 100644
index 0000000..a9d12e8
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr50763-2.c
@@ -0,0 +1,46 @@
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+typedef union tree_node *tree;
+
+struct tree_base
+{
+ int code;
+};
+
+struct tree_typed
+{
+ struct tree_base base;
+ tree type;
+};
+
+struct tree_common
+{
+ struct tree_typed typed;
+};
+
+struct tree_type_common
+{
+ tree main_variant;
+};
+
+union tree_node
+{
+ struct tree_base base;
+ struct tree_typed typed;
+ struct tree_type_common type_common;
+};
+
+int std_canonical_va_list_type (tree type)
+{
+ if (type->base.code)
+ type = type->typed.type;
+ else
+ if (type->typed.type->base.code)
+ type = type->typed.type;
+
+ if (type->type_common.main_variant)
+ return 1;
+
+ return 0;
+}