aboutsummaryrefslogtreecommitdiff
path: root/gcc/config.gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2021-08-30 09:44:28 -0400
committerJason Merrill <jason@redhat.com>2021-08-30 17:23:28 -0400
commita8de832470f78a40a0e2c8de866a471bf74bf0ab (patch)
treeb4c322aa99ae5649ec56af1b228c1304f2a2c68d /gcc/config.gcc
parenta7083b83e45852540a4a09ee11b74dc28d777399 (diff)
downloadgcc-a8de832470f78a40a0e2c8de866a471bf74bf0ab.zip
gcc-a8de832470f78a40a0e2c8de866a471bf74bf0ab.tar.gz
gcc-a8de832470f78a40a0e2c8de866a471bf74bf0ab.tar.bz2
c++: fold function template args sooner [PR101460]
As discussed in the PR, we were giving a lot of unnecessary errors for this testcase because we didn't try to do constant evaluation until convert_nontype_argument, which happens for each of the candidates. But when looking at a template-id as the function operand of a call, we can try to fold arguments before we get into overload resolution. PR c++/101460 gcc/cp/ChangeLog: * cp-tree.h (cxx_constant_value_sfinae): Declare. * constexpr.c (cxx_constant_value_sfinae): New. * pt.c (fold_targs_r, maybe_fold_fn_template_args): New. (tsubst_copy_and_build) [CALL_EXPR]: Call maybe_fold_fn_template_args. gcc/testsuite/ChangeLog: * g++.dg/template/explicit-args6.C: New test.
Diffstat (limited to 'gcc/config.gcc')
0 files changed, 0 insertions, 0 deletions