diff options
author | Jason Merrill <jason@redhat.com> | 2017-06-09 20:40:44 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2017-06-09 20:40:44 -0400 |
commit | 8b8b203a26bdac3dede77e76d06e4e7084f79acc (patch) | |
tree | 17fc780673ab6af72b41232e6ed5191e0b849c1d /gcc/cp/constexpr.c | |
parent | 52486891929862f8272e1c602957f5cb3b5d6e2a (diff) | |
download | gcc-8b8b203a26bdac3dede77e76d06e4e7084f79acc.zip gcc-8b8b203a26bdac3dede77e76d06e4e7084f79acc.tar.gz gcc-8b8b203a26bdac3dede77e76d06e4e7084f79acc.tar.bz2 |
Overhaul pointer-to-member conversion and template argument handling.
* call.c (standard_conversion): Avoid creating ck_pmem when the
class type is the same.
* cvt.c (can_convert_qual): Split from
perform_qualification_conversions.
* constexpr.c (cxx_eval_constant_expression): Check it.
* typeck.c (convert_ptrmem): Only cplus_expand_constant if
adjustment is necessary.
* pt.c (check_valid_ptrmem_cst_expr): Compare class types.
(convert_nontype_argument): Avoid redundant error.
From-SVN: r249088
Diffstat (limited to 'gcc/cp/constexpr.c')
-rw-r--r-- | gcc/cp/constexpr.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index 8bbe950..ae24e40 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -4399,7 +4399,8 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t, if (TREE_CODE (op) == PTRMEM_CST && tcode == NOP_EXPR) { if (same_type_ignoring_top_level_qualifiers_p (type, - TREE_TYPE (op))) + TREE_TYPE (op)) + || can_convert_qual (type, op)) return cp_fold_convert (type, op); else { |