diff options
author | Iain Sandoe <iain@sandoe.co.uk> | 2020-06-30 08:29:11 +0100 |
---|---|---|
committer | Iain Sandoe <iain@sandoe.co.uk> | 2020-06-30 13:46:13 +0100 |
commit | 65025a6dae4b2c62ca79d2d0687229dafa93af7f (patch) | |
tree | 697ba6d38fbae93ae5dfa04f9ce965a82d2603f5 /gcc/cp | |
parent | c5a90f61ace5aca821224a658c223881d5b02388 (diff) | |
download | gcc-65025a6dae4b2c62ca79d2d0687229dafa93af7f.zip gcc-65025a6dae4b2c62ca79d2d0687229dafa93af7f.tar.gz gcc-65025a6dae4b2c62ca79d2d0687229dafa93af7f.tar.bz2 |
coroutines: Handle namespaces while scanning local vars [PR95711].
We need to skip past namespace decls when scanning the bind
expression var lists checking for local vars.
gcc/cp/ChangeLog:
PR c++/95711
* coroutines.cc (register_local_var_uses): Skip past
namespace decls.
gcc/testsuite/ChangeLog:
PR c++/95711
* g++.dg/coroutines/pr95711.C: New test.
(cherry picked from commit 06ed4aae1c2fa84b7050a286d866db4a6def3c36)
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/coroutines.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc index 75efd50..9ab0a7e 100644 --- a/gcc/cp/coroutines.cc +++ b/gcc/cp/coroutines.cc @@ -3564,7 +3564,8 @@ register_local_var_uses (tree *stmt, int *do_subtree, void *d) local_var.field_idx = local_var.field_id = NULL_TREE; /* Make sure that we only present vars to the tests below. */ - if (TREE_CODE (lvar) == TYPE_DECL) + if (TREE_CODE (lvar) == TYPE_DECL + || TREE_CODE (lvar) == NAMESPACE_DECL) continue; /* We don't move static vars into the frame. */ |