On Wed, Feb 17, 2021 at 01:46:37PM -0500, Nathan Sidwell wrote:
> I'd missed that macros were allocated from GC storage, and that they can
> become unattached from an identifier, and therefore not GC-reachable.
> And then bad things happen. Fixed by making the module machinery's
> reference vector a GC root.
>
> PR c++/99023
> gcc/cp/
> * module.cc (struct macro_export): Add GTY markers.
> (macro_exports): Likewise, us a va_gc Vector.
> gcc/testsuite/
> * g++.dg/modules/pr99023_a.H: New.
> * g++.dg/modules/pr99023_b.H: New.
I must say I don't know much about modules, but seeing the second set
of > 100KB g++.dg/modules/ testcases, I need to wonder, do we really need that
large tests?
Can't cvise (or creduce or multi-delta) be used to minimize that, use
a checking script that uses unfixed and fixed compilers and minimizes
into something that is accepted without errors by the fixed compiler
and still ICEs with the unfixed one?
Jakub