]> git.ipfire.org Git - thirdparty/gcc.git/commit
Missing bits from N4268, constant evaluation for all non-type args.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Jun 2017 00:40:50 +0000 (00:40 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Jun 2017 00:40:50 +0000 (00:40 +0000)
commit2104a0fd1f43b0d8f8c238981656d04cfe36044b
tree8d20815456dbc2d945ec18a4963a28ba3b75f5e9
parent0a8a210857859faae21357bedd45e5f8cd9fe438
Missing bits from N4268, constant evaluation for all non-type args.

* call.c (build_converted_constant_expr): Rename from
build_integral_nontype_arg_conv, handle all types.
* pt.c (convert_nontype_argument): In C++17 call it for all types.
Move NOP stripping inside pointer case, don't strip ADDR_EXPR.
* cvt.c (strip_fnptr_conv): Also strip conversions to the same type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249089 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/cvt.c
gcc/cp/pt.c
gcc/testsuite/g++.dg/cpp0x/constexpr-targ.C
gcc/testsuite/g++.dg/template/crash106.C
gcc/testsuite/g++.dg/template/crash84.C
gcc/testsuite/g++.dg/template/crash87.C
gcc/testsuite/g++.dg/template/dependent-args1.C
gcc/testsuite/g++.dg/template/nontype-array1.C
gcc/testsuite/g++.dg/template/nontype13.C
gcc/testsuite/g++.dg/template/nontype21.C
gcc/testsuite/g++.dg/template/nontype26.C
gcc/testsuite/g++.dg/template/ptrmem20.C
gcc/testsuite/g++.dg/template/ptrmem8.C