> 
> How about moving it to symtab_node and using dyn_cast for the cgraph bits,
> like this:

> From 1d869ceb04573727e59be6518903133c8654069a Mon Sep 17 00:00:00 2001
> From: Jason Merrill <ja...@redhat.com>
> Date: Mon, 6 Mar 2023 15:33:45 -0500
> Subject: [PATCH] c++: lambda mangling alias issues [PR107897]
> To: gcc-patches@gcc.gnu.org
> 
> In 107897, by the time we are looking at the mangling clash, the
> alias has already been removed from the symbol table by analyze_functions,
> so we can't look at n->cpp_implicit_alias.  So just assume that it's an
> alias if it's internal.
> 
> In 108887 the problem is that removing the mangling alias from the symbol
> table confuses analyze_functions, because it ended up as first_analyzed
> somehow, so it becomes a dangling pointer.  Fixed by clearing various flags
> to neutralize the alias.
> 
>       PR c++/107897
>       PR c++/108887
> 
> gcc/ChangeLog:
> 
>       * cgraph.h: Move reset() from cgraph_node to symtab_node.
>       * cgraphunit.cc (symtab_node::reset): Adjust.
> 
> gcc/cp/ChangeLog:
> 
>       * decl2.cc (record_mangling): Use symtab_node::reset.
> 
> gcc/testsuite/ChangeLog:
> 
>       * g++.dg/cpp2a/concepts-lambda3.C: Use -flto if supported.
>       * g++.dg/cpp0x/lambda/lambda-mangle7.C: New test.

OK and I apologize for the delay (my travels were more busy than I
hoped)
Honza

Reply via email to