From 0de1481a9d91e936135da4f882314499eea38a36 Mon Sep 17 00:00:00 2001 From: Nathaniel Shead <nathanieloshead@gmail.com> Date: Thu, 8 Aug 2024 22:00:07 +1000 Subject: [PATCH] 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 <nathanieloshead@gmail.com> --- 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. */ -- GitLab