https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100617
Bug ID: 100617 Summary: [modules] Exported namespace not visible from outside when the module imports another module that declares the same namespace Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: amorvincitomnia.iw at gmail dot com Target Milestone: --- See it live: https://wandbox.org/permlink/1Tgk83eCk7VYm3a3 Minimum code to reproduce the error: //test2.cc export module test2; export namespace A{} //test1.cc export module test1; import test2; export namespace A{ int a = 3; } //prog.cc import test1; void g(){ A::a; } Compile it with: $ g++ "-std=c++20" "-fmodules-ts" "test2.cc" "test1.cc" "prog.cc" Results in error: prog.cc: In function 'void g()': prog.cc:5:5: error: 'A' has not been declared 5 | A::a; | ^ Reproduces in both g++ 11.1.0 and g++ 12.0.0 20210510.