diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index 1b57fbe2124..0bd46414da9 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -14761,9 +14761,7 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, for (unsigned ix = 0; ix != size; ix++) { depset *b = scc[ix]; - for (unsigned jx = (b->get_entity_kind () == depset::EK_BINDING - || b->is_special ()) ? 1 : 0; - jx != b->deps.length (); jx++) + for (unsigned jx = b->is_special (); jx != b->deps.length (); jx++) { depset *dep = b->deps[jx]; diff --git a/gcc/testsuite/g++.dg/modules/pr106363_a.C b/gcc/testsuite/g++.dg/modules/pr106363_a.C new file mode 100644 index 00000000000..c18d2eef1c8 --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/pr106363_a.C @@ -0,0 +1,9 @@ +// PR c++/106363 +// { dg-additional-options "-fmodules-ts" } +// { dg-module-cmi pr106363.a } + +export module pr106363.a; + +namespace ns { + export int x; +} diff --git a/gcc/testsuite/g++.dg/modules/pr106363_b.C b/gcc/testsuite/g++.dg/modules/pr106363_b.C new file mode 100644 index 00000000000..0508c0d6193 --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/pr106363_b.C @@ -0,0 +1,10 @@ +// PR c++/106363 +// { dg-additional-options "-fmodules-ts" } +// { dg-module-cmi pr106363.b } + +export module pr106363.b; +import pr106363.a; + +namespace ns { + export using ns::x; +}