From: Nathaniel Shead Date: Thu, 8 Aug 2024 12:00:07 +0000 (+1000) Subject: c++/modules: Assume header bindings are global module X-Git-Tag: basepoints/gcc-16~6735 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0de1481a9d91e936135da4f882314499eea38a36;p=thirdparty%2Fgcc.git c++/modules: Assume header bindings are global module While stepping through some code I noticed that we do some extra work (finding the originating module decl, stripping the template, and inspecting the attached-ness) for every declaration taken from a header unit. This doesn't seem necessary though since no declaration in a header unit can be attached to anything but the global module, so we can just assume that global_p will be true. This was the original behaviour before I removed this assumption while refactoring for r15-2807-gc592310d5275e0. gcc/cp/ChangeLog: * module.cc (module_state::read_cluster): Assume header module declarations will require GM merging. Signed-off-by: Nathaniel Shead --- diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index 58ad8cbdb61..f4d137b13a1 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -15361,7 +15361,7 @@ module_state::read_cluster (unsigned snum) tree visible = NULL_TREE; tree type = NULL_TREE; bool dedup = false; - bool global_p = false; + bool global_p = is_header (); /* We rely on the bindings being in the reverse order of the resulting overload set. */