This affected std::views in module std.
gcc/cp/ChangeLog:
* name-lookup.cc (do_namespace_alias): set_originating_module after
pushdecl.
gcc/testsuite/ChangeLog:
* g++.dg/modules/namespace-7_a.C: New test.
* g++.dg/modules/namespace-7_b.C: New test.
DECL_EXTERNAL (alias) = 1;
DECL_CONTEXT (alias) = FROB_CONTEXT (current_scope ());
TREE_PUBLIC (alias) = TREE_PUBLIC (DECL_CONTEXT (alias));
- set_originating_module (alias);
- pushdecl (alias);
+ alias = pushdecl (alias);
+
+ if (!DECL_P (alias) || !DECL_NAMESPACE_ALIAS (alias))
+ return;
+
+ set_originating_module (alias);
/* Emit debug info for namespace alias. */
if (!building_stmt_list_p ())
--- /dev/null
+// { dg-additional-options "-fmodules -Wno-global-module" }
+
+module;
+
+namespace B { int i; }
+namespace C = B;
+
+export module foo;
+// { dg-module-cmi foo }
+
+export {
+ namespace B { using B::i; }
+ namespace C = B;
+}
--- /dev/null
+// { dg-additional-options "-fmodules" }
+
+import foo;
+
+int main()
+{
+ C::i = 42;
+}