https://gcc.gnu.org/g:0de1481a9d91e936135da4f882314499eea38a36

commit r15-2818-g0de1481a9d91e936135da4f882314499eea38a36
Author: Nathaniel Shead <nathanielosh...@gmail.com>
Date:   Thu Aug 8 22:00:07 2024 +1000

    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 <nathanielosh...@gmail.com>

Diff:
---
 gcc/cp/module.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index 58ad8cbdb614..f4d137b13a17 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.  */

Reply via email to