c++: Fix GC with TU_LOCAL_ENTITY [PR119564]
When adding TU_LOCAL_ENTITY in r15-6379 I neglected to add it to cp_tree_node_structure, so garbage collection was crashing on it. PR c++/119564 gcc/cp/ChangeLog: * decl.cc (cp_tree_node_structure): Add TU_LOCAL_ENTITY; fix formatting. gcc/testsuite/ChangeLog: * g++.dg/modules/gc-3_a.C: New test. * g++.dg/modules/gc-3_b.C: New test. Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com> Reviewed-by: Jason Merrill <jason@redhat.com>
This commit is contained in:
parent
b8e8829cfb
commit
337b9ff485
3 changed files with 15 additions and 3 deletions
|
@ -19834,14 +19834,14 @@ cp_tree_node_structure (union lang_tree_node * t)
|
|||
{
|
||||
switch (TREE_CODE (&t->generic))
|
||||
{
|
||||
case ARGUMENT_PACK_SELECT: return TS_CP_ARGUMENT_PACK_SELECT;
|
||||
case ARGUMENT_PACK_SELECT: return TS_CP_ARGUMENT_PACK_SELECT;
|
||||
case BASELINK: return TS_CP_BASELINK;
|
||||
case CONSTRAINT_INFO: return TS_CP_CONSTRAINT_INFO;
|
||||
case CONSTRAINT_INFO: return TS_CP_CONSTRAINT_INFO;
|
||||
case DEFERRED_NOEXCEPT: return TS_CP_DEFERRED_NOEXCEPT;
|
||||
case DEFERRED_PARSE: return TS_CP_DEFERRED_PARSE;
|
||||
case IDENTIFIER_NODE: return TS_CP_IDENTIFIER;
|
||||
case LAMBDA_EXPR: return TS_CP_LAMBDA_EXPR;
|
||||
case BINDING_VECTOR: return TS_CP_BINDING_VECTOR;
|
||||
case BINDING_VECTOR: return TS_CP_BINDING_VECTOR;
|
||||
case OVERLOAD: return TS_CP_OVERLOAD;
|
||||
case PTRMEM_CST: return TS_CP_PTRMEM;
|
||||
case STATIC_ASSERT: return TS_CP_STATIC_ASSERT;
|
||||
|
@ -19849,6 +19849,7 @@ cp_tree_node_structure (union lang_tree_node * t)
|
|||
case TEMPLATE_INFO: return TS_CP_TEMPLATE_INFO;
|
||||
case TEMPLATE_PARM_INDEX: return TS_CP_TPI;
|
||||
case TRAIT_EXPR: return TS_CP_TRAIT_EXPR;
|
||||
case TU_LOCAL_ENTITY: return TS_CP_TU_LOCAL_ENTITY;
|
||||
case USERDEF_LITERAL: return TS_CP_USERDEF_LITERAL;
|
||||
default: return TS_CP_GENERIC;
|
||||
}
|
||||
|
|
7
gcc/testsuite/g++.dg/modules/gc-3_a.C
Normal file
7
gcc/testsuite/g++.dg/modules/gc-3_a.C
Normal file
|
@ -0,0 +1,7 @@
|
|||
// PR c++/119564
|
||||
// { dg-additional-options "-fmodules -Wtemplate-names-tu-local" }
|
||||
// { dg-module-cmi M }
|
||||
|
||||
export module M;
|
||||
static void foo() {}; // { dg-message "declared" }
|
||||
template <typename> void bar() { foo(); } // { dg-warning "TU-local" }
|
4
gcc/testsuite/g++.dg/modules/gc-3_b.C
Normal file
4
gcc/testsuite/g++.dg/modules/gc-3_b.C
Normal file
|
@ -0,0 +1,4 @@
|
|||
// PR c++/119564
|
||||
// { dg-additional-options "-fmodules -fno-module-lazy --param=ggc-min-expand=0 --param=ggc-min-heapsize=0" }
|
||||
|
||||
import M;
|
Loading…
Add table
Reference in a new issue