aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorIain Sandoe <iain@sandoe.co.uk>2020-06-30 08:29:11 +0100
committerIain Sandoe <iain@sandoe.co.uk>2020-06-30 13:46:13 +0100
commit65025a6dae4b2c62ca79d2d0687229dafa93af7f (patch)
tree697ba6d38fbae93ae5dfa04f9ce965a82d2603f5 /gcc/cp
parentc5a90f61ace5aca821224a658c223881d5b02388 (diff)
downloadgcc-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.cc3
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. */