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
This commit is contained in:
parent
6f96dcebb2
commit
c6f044f766
|
@ -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>
|
2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
|
||||||
|
|
||||||
* genrecog.c (validate_pattern): Check matching constraint refers
|
* genrecog.c (validate_pattern): Check matching constraint refers
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
2015-04-24 Jason Merrill <jason@redhat.com>
|
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]:
|
* constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
|
||||||
Remove obsolete code.
|
Remove obsolete code.
|
||||||
[NE_EXPR]: Likewise.
|
[NE_EXPR]: Likewise.
|
||||||
|
|
|
@ -1310,7 +1310,6 @@ structural_comptypes (tree t1, tree t2, int strict)
|
||||||
|
|
||||||
case POINTER_TYPE:
|
case POINTER_TYPE:
|
||||||
if (TYPE_MODE (t1) != TYPE_MODE (t2)
|
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)))
|
|| !same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
|
||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -7706,7 +7706,7 @@ build_pointer_type_for_mode (tree to_type, machine_mode mode,
|
||||||
else if (TYPE_CANONICAL (to_type) != to_type)
|
else if (TYPE_CANONICAL (to_type) != to_type)
|
||||||
TYPE_CANONICAL (t)
|
TYPE_CANONICAL (t)
|
||||||
= build_pointer_type_for_mode (TYPE_CANONICAL (to_type),
|
= 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
|
/* Lay out the type. This function has many callers that are concerned
|
||||||
with expression-construction, and this simplifies them all. */
|
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)
|
else if (TYPE_CANONICAL (to_type) != to_type)
|
||||||
TYPE_CANONICAL (t)
|
TYPE_CANONICAL (t)
|
||||||
= build_reference_type_for_mode (TYPE_CANONICAL (to_type),
|
= build_reference_type_for_mode (TYPE_CANONICAL (to_type),
|
||||||
mode, can_alias_all);
|
mode, false);
|
||||||
|
|
||||||
layout_type (t);
|
layout_type (t);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue