c++: don't ICE on NAMESPACE_DECL inside FUNCTION_DECL
Code like void swap() { namespace __variant = __detail::__variant; ... } create a NAMESPACE_DECL where the CP_DECL_CONTEXT is a FUNCTION_DECL. DECL_TEMPLATE_INFO fails on NAMESPACE_DECL and therefore must be handled first in the assertion. Signed-off-by: Matthias Kretz <m.kretz@gsi.de> gcc/cp/ChangeLog: * module.cc (trees_out::get_merge_kind): NAMESPACE_DECLs also cannot have a DECL_TEMPLATE_INFO.
This commit is contained in:
parent
89cf57ea35
commit
6bcb6ed5a4
1 changed files with 3 additions and 2 deletions
|
@ -10067,9 +10067,10 @@ trees_out::get_merge_kind (tree decl, depset *dep)
|
|||
tree ctx = CP_DECL_CONTEXT (decl);
|
||||
if (TREE_CODE (ctx) == FUNCTION_DECL)
|
||||
{
|
||||
/* USING_DECLs cannot have DECL_TEMPLATE_INFO -- this isn't
|
||||
permitting them to have one. */
|
||||
/* USING_DECLs and NAMESPACE_DECLs cannot have DECL_TEMPLATE_INFO --
|
||||
this isn't permitting them to have one. */
|
||||
gcc_checking_assert (TREE_CODE (decl) == USING_DECL
|
||||
|| TREE_CODE (decl) == NAMESPACE_DECL
|
||||
|| !DECL_LANG_SPECIFIC (decl)
|
||||
|| !DECL_TEMPLATE_INFO (decl));
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue