diff options
author | Jason Merrill <jason@redhat.com> | 2015-04-24 15:11:45 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2015-04-24 15:11:45 -0400 |
commit | c6f044f7664a1659618e0585c703036f472a1caa (patch) | |
tree | fcec492840a88dd43e1c97bfb438cc31723cd5fe | |
parent | 6f96dcebb22a03fd4df64a18c13c5bbc1cee8a76 (diff) | |
download | gcc-c6f044f7664a1659618e0585c703036f472a1caa.zip gcc-c6f044f7664a1659618e0585c703036f472a1caa.tar.gz gcc-c6f044f7664a1659618e0585c703036f472a1caa.tar.bz2 |
re PR c++/50800 (Internal compiler error in finish_member_declarations, possibly related to may_alias attribute)
PR c++/50800
gcc/
* tree.c (build_reference_type_for_mode): Don't pass can_alias_all
down when building TYPE_CANONICAL.
(build_pointer_type_for_mode): Likewise.
gcc/cp/
* typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL.
From-SVN: r222419
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/typeck.c | 1 | ||||
-rw-r--r-- | gcc/tree.c | 4 |
4 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1995751b..b4b0490 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-04-24 Jason Merrill <jason@redhat.com> + + PR c++/50800 + * tree.c (build_reference_type_for_mode): Don't pass can_alias_all + down when building TYPE_CANONICAL. + (build_pointer_type_for_mode): Likewise. + 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com> * genrecog.c (validate_pattern): Check matching constraint refers diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 767094d4..7c7ec09 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2015-04-24 Jason Merrill <jason@redhat.com> + PR c++/50800 + * typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL. + * constexpr.c (potential_constant_expression_1) [MINUS_EXPR]: Remove obsolete code. [NE_EXPR]: Likewise. diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 250b5d6..91db32a 100644 --- a/gcc/cp/typeck.c +++ b/gcc/cp/typeck.c @@ -1310,7 +1310,6 @@ structural_comptypes (tree t1, tree t2, int strict) case POINTER_TYPE: if (TYPE_MODE (t1) != TYPE_MODE (t2) - || TYPE_REF_CAN_ALIAS_ALL (t1) != TYPE_REF_CAN_ALIAS_ALL (t2) || !same_type_p (TREE_TYPE (t1), TREE_TYPE (t2))) return false; break; @@ -7706,7 +7706,7 @@ build_pointer_type_for_mode (tree to_type, machine_mode mode, else if (TYPE_CANONICAL (to_type) != to_type) TYPE_CANONICAL (t) = build_pointer_type_for_mode (TYPE_CANONICAL (to_type), - mode, can_alias_all); + mode, false); /* Lay out the type. This function has many callers that are concerned with expression-construction, and this simplifies them all. */ @@ -7773,7 +7773,7 @@ build_reference_type_for_mode (tree to_type, machine_mode mode, else if (TYPE_CANONICAL (to_type) != to_type) TYPE_CANONICAL (t) = build_reference_type_for_mode (TYPE_CANONICAL (to_type), - mode, can_alias_all); + mode, false); layout_type (t); |