call.c (add_builtin_candidates): Use cv_unqualified rather than TYPE_MAIN_VARIANT.
* call.c (add_builtin_candidates): Use cv_unqualified rather than TYPE_MAIN_VARIANT. * pt.c (tsubst_arg_types): Likewise. * except.c (build_throw): Use cv_unqualified. From-SVN: r175272
This commit is contained in:
parent
293678445f
commit
ccaff498ac
@ -1,5 +1,10 @@
|
|||||||
2011-06-21 Jason Merrill <jason@redhat.com>
|
2011-06-21 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* call.c (add_builtin_candidates): Use cv_unqualified rather than
|
||||||
|
TYPE_MAIN_VARIANT.
|
||||||
|
* pt.c (tsubst_arg_types): Likewise.
|
||||||
|
* except.c (build_throw): Use cv_unqualified.
|
||||||
|
|
||||||
PR c++/49418
|
PR c++/49418
|
||||||
* call.c (cxx_type_promotes_to): Don't strip cv-quals.
|
* call.c (cxx_type_promotes_to): Don't strip cv-quals.
|
||||||
* semantics.c (lambda_return_type): Strip them here.
|
* semantics.c (lambda_return_type): Strip them here.
|
||||||
|
@ -2773,7 +2773,7 @@ add_builtin_candidates (struct z_candidate **candidates, enum tree_code code,
|
|||||||
type = non_reference (type);
|
type = non_reference (type);
|
||||||
if (i != 0 || ! ref1)
|
if (i != 0 || ! ref1)
|
||||||
{
|
{
|
||||||
type = TYPE_MAIN_VARIANT (type_decays_to (type));
|
type = cv_unqualified (type_decays_to (type));
|
||||||
if (enum_p && TREE_CODE (type) == ENUMERAL_TYPE)
|
if (enum_p && TREE_CODE (type) == ENUMERAL_TYPE)
|
||||||
VEC_safe_push (tree, gc, types[i], type);
|
VEC_safe_push (tree, gc, types[i], type);
|
||||||
if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type))
|
if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type))
|
||||||
@ -2792,7 +2792,7 @@ add_builtin_candidates (struct z_candidate **candidates, enum tree_code code,
|
|||||||
type = non_reference (argtypes[i]);
|
type = non_reference (argtypes[i]);
|
||||||
if (i != 0 || ! ref1)
|
if (i != 0 || ! ref1)
|
||||||
{
|
{
|
||||||
type = TYPE_MAIN_VARIANT (type_decays_to (type));
|
type = cv_unqualified (type_decays_to (type));
|
||||||
if (enum_p && UNSCOPED_ENUM_P (type))
|
if (enum_p && UNSCOPED_ENUM_P (type))
|
||||||
VEC_safe_push (tree, gc, types[i], type);
|
VEC_safe_push (tree, gc, types[i], type);
|
||||||
if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type))
|
if (INTEGRAL_OR_UNSCOPED_ENUMERATION_TYPE_P (type))
|
||||||
|
@ -722,7 +722,7 @@ build_throw (tree exp)
|
|||||||
respectively. */
|
respectively. */
|
||||||
temp_type = is_bitfield_expr_with_lowered_type (exp);
|
temp_type = is_bitfield_expr_with_lowered_type (exp);
|
||||||
if (!temp_type)
|
if (!temp_type)
|
||||||
temp_type = type_decays_to (TREE_TYPE (exp));
|
temp_type = cv_unqualified (type_decays_to (TREE_TYPE (exp)));
|
||||||
|
|
||||||
/* OK, this is kind of wacky. The standard says that we call
|
/* OK, this is kind of wacky. The standard says that we call
|
||||||
terminate when the exception handling mechanism, after
|
terminate when the exception handling mechanism, after
|
||||||
|
@ -10246,7 +10246,7 @@ tsubst_arg_types (tree arg_types,
|
|||||||
|
|
||||||
/* Do array-to-pointer, function-to-pointer conversion, and ignore
|
/* Do array-to-pointer, function-to-pointer conversion, and ignore
|
||||||
top-level qualifiers as required. */
|
top-level qualifiers as required. */
|
||||||
type = TYPE_MAIN_VARIANT (type_decays_to (type));
|
type = cv_unqualified (type_decays_to (type));
|
||||||
|
|
||||||
/* We do not substitute into default arguments here. The standard
|
/* We do not substitute into default arguments here. The standard
|
||||||
mandates that they be instantiated only when needed, which is
|
mandates that they be instantiated only when needed, which is
|
||||||
|
Loading…
Reference in New Issue
Block a user