c++: generic lambdas and local-externs from outer scopes [PR 99030]
authorNathan Sidwell <nathan@acm.org>
Wed, 10 Feb 2021 13:29:39 +0000 (05:29 -0800)
committerNathan Sidwell <nathan@acm.org>
Wed, 10 Feb 2021 13:34:42 +0000 (05:34 -0800)
commitf8fac476b5ce4b9a37ea2b257d9da810f8c507be
treec61987740ec5c1df419f50268d687c2c500b0abc
parent57d1b68d6582efec5a7ca63ea56a1cedbfe6e874
c++: generic lambdas and local-externs from outer scopes [PR 99030]

Lambdas can refer to local externs from their enclosing scope.  When
the lambda's generic but the containing function is not a temploid,
we'll never have tsubsted the declaring decl so won't have a local
specialization.  But in that case we can just use the decl we
tsubsting directly -- it's not dependent.

PR c++/99030
gcc/cp
* pt.c (tsubst_copy) [VAR_DECL]: For a DECL_LOCAL_DECL_P T is the
answer if there's no local specialization.
gcc/testsuite/
* g++.dg/lookup/pr99030.C: New.
gcc/cp/pt.c
gcc/testsuite/g++.dg/lookup/pr99030.C [new file with mode: 0644]