public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/115194] New: [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module @ 2024-05-22 17:40 nickbegg at gmail dot com 2024-06-13 2:42 ` [Bug c++/115194] " jason at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: nickbegg at gmail dot com @ 2024-05-22 17:40 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115194 Bug ID: 115194 Summary: [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nickbegg at gmail dot com Target Milestone: --- This code example was reduced from Boost's multi_index_container. When referencing symbols via modules and using statements, gcc gets tripped up with different routes to the same symbol. When #including clean.hpp directly into main.cpp, this compiles ok.: /// clean.hpp : namespace NS1 { namespace NS2 { class Thing {}; } // NS2 using NS2::Thing; } // NS1 /// modA.mpp: module; #include "clean.hpp" export module modA; export namespace NS1 { using ::NS1::Thing; namespace NS2 { } } /// main.cpp: #if 0 #include "clean.hpp" #else import modA; #endif using NS1::Thing; using namespace NS1::NS2; Thing thing; /// Tested with gcc trunk / 15.0.0 20240522 (revid 1a5e4dd83788ea4c049d354d83ad58a6a3d747e6) /home/nick/inst/gcc-trunk-debug/bin/g++ -fdiagnostics-color=always -g -std=gnu++23 -MD -MT CMakeFiles/moduleMin.dir/main.cpp.o -MF CMakeFiles/moduleMin.dir/main.cpp.o.d -fmodules-ts -fmodule-mapper=CMakeFiles/moduleMin.dir/main.cpp.o.modmap -MD -fdeps-format=p1689r5 -x c++ -o CMakeFiles/moduleMin.dir/main.cpp.o -c /home/nick/src/moduleMin/main.cpp /home/nick/src/moduleMin/main.cpp:9:1: error: reference to ‘Thing’ is ambiguous 9 | Thing thing; | ^~~~~ In file included from /home/nick/src/moduleMin/modA.mpp:3, of module modA, imported at /home/nick/src/moduleMin/main.cpp:4: /home/nick/src/moduleMin/clean.hpp:5:7: note: candidates are: ‘class NS1::NS2::Thing@modA’ 5 | class Thing {}; | ^~~~~ /home/nick/src/moduleMin/clean.hpp:5:7: note: ‘class NS1::NS2::Thing@modA’ ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/115194] [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module 2024-05-22 17:40 [Bug c++/115194] New: [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module nickbegg at gmail dot com @ 2024-06-13 2:42 ` jason at gcc dot gnu.org 2024-06-13 15:06 ` cvs-commit at gcc dot gnu.org 2024-06-13 15:11 ` jason at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: jason at gcc dot gnu.org @ 2024-06-13 2:42 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115194 Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2024-06-13 Ever confirmed|0 |1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/115194] [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module 2024-05-22 17:40 [Bug c++/115194] New: [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module nickbegg at gmail dot com 2024-06-13 2:42 ` [Bug c++/115194] " jason at gcc dot gnu.org @ 2024-06-13 15:06 ` cvs-commit at gcc dot gnu.org 2024-06-13 15:11 ` jason at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-06-13 15:06 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115194 --- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Jason Merrill <jason@gcc.gnu.org>: https://gcc.gnu.org/g:8878fecc251762bc32c24e659695557797e03fd9 commit r15-1296-g8878fecc251762bc32c24e659695557797e03fd9 Author: Jason Merrill <jason@redhat.com> Date: Wed Jun 12 21:44:10 2024 -0400 c++/modules: multiple usings of the same decl [PR115194] add_binding_entity creates an OVERLOAD to represent a using-declaration in module purview of a declaration in the global module, even for non-functions, and we were failing to merge that with the original declaration in name lookup. It's not clear to me that building the OVERLOAD is what should be happening, but let's work around it for now pending an overhaul of using-decl handling for c++/114683. PR c++/115194 gcc/cp/ChangeLog: * name-lookup.cc (name_lookup::process_module_binding): Strip an OVERLOAD from a non-function. gcc/testsuite/ChangeLog: * g++.dg/modules/using-23_a.C: New test. * g++.dg/modules/using-23_b.C: New test. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/115194] [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module 2024-05-22 17:40 [Bug c++/115194] New: [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module nickbegg at gmail dot com 2024-06-13 2:42 ` [Bug c++/115194] " jason at gcc dot gnu.org 2024-06-13 15:06 ` cvs-commit at gcc dot gnu.org @ 2024-06-13 15:11 ` jason at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: jason at gcc dot gnu.org @ 2024-06-13 15:11 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115194 Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |15.0 Status|ASSIGNED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> --- Fixed. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-06-13 15:11 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-05-22 17:40 [Bug c++/115194] New: [modules] "reference to <symbol> is ambiguous" when multiple paths to same symbol exist through module nickbegg at gmail dot com 2024-06-13 2:42 ` [Bug c++/115194] " jason at gcc dot gnu.org 2024-06-13 15:06 ` cvs-commit at gcc dot gnu.org 2024-06-13 15:11 ` jason at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).