aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/misc.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2018-11-12 23:47:20 -0500
committerJason Merrill <jason@gcc.gnu.org>2018-11-12 23:47:20 -0500
commit7d119905abdf28f56486be0ca01a42f8efcea1a2 (patch)
treeea8bf50fae9497d15cbee4407a37515b686e65af /gcc/ada/gcc-interface/misc.c
parent7c23c87c93f3eafa5c22d1f4f52711d97f3a4329 (diff)
downloadgcc-7d119905abdf28f56486be0ca01a42f8efcea1a2.zip
gcc-7d119905abdf28f56486be0ca01a42f8efcea1a2.tar.gz
gcc-7d119905abdf28f56486be0ca01a42f8efcea1a2.tar.bz2
Avoid double substitution with complete explicit template arguments.
Previously, when we got a function template with explicit arguments for all of the template parameters, we still did "deduction", which of course couldn't deduce anything, but did other deduction-time checking of non-dependent conversions and such. This broke down with the unevaluated lambdas patch (to follow): substituting into the lambda multiple times, once to get the function type for deduction and then again to generate the actual decl, doesn't work, since different substitutions of a lambda produce different types. I believe that skipping the initial substitution when we have all the arguments is still conformant, and produces better diagnostics for some testcases. * pt.c (fn_type_unification): If we have a full set of explicit arguments, go straight to substitution. From-SVN: r266055
Diffstat (limited to 'gcc/ada/gcc-interface/misc.c')
0 files changed, 0 insertions, 0 deletions