diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3da61dbcfd9..65b648a3edc 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,10 @@ 2020-04-13 Patrick Palka + PR c++/94521 + * error.c (dump_scope): Pass TFF_NO_FUNCTION_ARGUMENTS to + dump_function_decl when printing a function template instantiation as a + scope. + PR c++/94470 * constexpr.c (get_or_insert_ctor_field): Set default value of parameter 'pos_hint' to -1. diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 61d1218dc90..98c163db572 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -211,6 +211,8 @@ dump_scope (cxx_pretty_printer *pp, tree scope, int flags) } else if ((flags & TFF_SCOPE) && TREE_CODE (scope) == FUNCTION_DECL) { + if (DECL_USE_TEMPLATE (scope)) + f |= TFF_NO_FUNCTION_ARGUMENTS; dump_function_decl (pp, scope, f); pp_cxx_colon_colon (pp); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 74a7fa10163..8e2df1b6eda 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2020-04-13 Patrick Palka + PR c++/94521 + * g++.dg/cpp2a/lambda-uneval12.C: New test. + PR c++/94470 * g++.dg/cpp1y/constexpr-nsdmi8.C: New test. * g++.dg/cpp1y/constexpr-nsdmi9.C: New test. diff --git a/gcc/testsuite/g++.dg/cpp2a/lambda-uneval12.C b/gcc/testsuite/g++.dg/cpp2a/lambda-uneval12.C new file mode 100644 index 00000000000..24d2e701e44 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp2a/lambda-uneval12.C @@ -0,0 +1,13 @@ +// PR c++/94521 +// { dg-do compile { target c++2a } } + +template +void spam(decltype([]{}) *s) +{ + static_assert(__is_same(int, decltype(s))); // { dg-error "static assertion failed" } +} + +void foo() +{ + spam(nullptr); +}