aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2016-02-24 17:23:35 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2016-02-24 10:23:35 -0700
commit3b96b93aec896a79bffad622ce6a161276cb198e (patch)
treedf773a7c17ec70564d69527a0612f6a4dc771193 /gcc/cp
parent57c2c374df803636ce218618091114ac13647467 (diff)
downloadgcc-3b96b93aec896a79bffad622ce6a161276cb198e.zip
gcc-3b96b93aec896a79bffad622ce6a161276cb198e.tar.gz
gcc-3b96b93aec896a79bffad622ce6a161276cb198e.tar.bz2
PR c++/69912 - [6 regression] ICE in build_ctor_subob_ref initializing
PR c++/69912 - [6 regression] ICE in build_ctor_subob_ref initializing a flexible array member gcc/testsuite/ChangeLog: 2016-02-24 Martin Sebor <msebor@redhat.com> PR c++/69912 * g++.dg/ext/flexary15.C: New test. gcc/cp/ChangeLog: 2016-02-24 Martin Sebor <msebor@redhat.com> PR c++/69912 * tree.c (build_ctor_subob_ref): Compare types' main variants instead of the types as they are. From-SVN: r233678
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/tree.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6212d43..764d2a8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+016-02-24 Martin Sebor <msebor@redhat.com>
+
+ PR c++/69912
+ * tree.c (build_ctor_subob_ref): Compare types' main variants
+ instead of the types as they are.
+
2016-02-24 Jason Merrill <jason@redhat.com>
* decl.c (start_preparsed_function): Condition ctor clobber on
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 3203aca..0f7287a 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -2592,8 +2592,10 @@ build_ctor_subob_ref (tree index, tree type, tree obj)
{
/* When the destination object refers to a flexible array member
verify that it matches the type of the source object except
- for its domain. */
- gcc_assert (comptypes (type, objtype, COMPARE_REDECLARATION));
+ for its domain and qualifiers. */
+ gcc_assert (comptypes (TYPE_MAIN_VARIANT (type),
+ TYPE_MAIN_VARIANT (objtype),
+ COMPARE_REDECLARATION));
}
else
gcc_assert (same_type_ignoring_top_level_qualifiers_p (type, objtype));