c++/modules: Avoid ICE when redefining a type reachable via import [PR122053]
This shouldn't be an error (see PR c++/99000), but we can at least avoid
the ICE by ensuring that we load any pending type definition before
calling pushdecl, so that we error before committing to filling in the
class definition.
Something like this will probably still be helpful even for implementing
textual deduplication as we now at least ensure check_module_override is
called for this case.
PR c++/122053
gcc/cp/ChangeLog:
* name-lookup.cc (pushtag): Load any imported definition of type
before calling pushdecl.
gcc/testsuite/ChangeLog:
* g++.dg/modules/pr122053_a.C: New test.
* g++.dg/modules/pr122053_b.C: New test.
Signed-off-by: Nathaniel Shead <nathanieloshead@gmail.com> Reviewed-by: Jason Merrill <jason@redhat.com>