public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "asynts+bugs at gmail dot com" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/100617] [modules] Exported namespace not visible from outside when the module imports another module that declares the same namespace Date: Fri, 11 Feb 2022 12:47:12 +0000 [thread overview] Message-ID: <bug-100617-4-7jLE9s1RMq@http.gcc.gnu.org/bugzilla/> (raw) In-Reply-To: <bug-100617-4@http.gcc.gnu.org/bugzilla/> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100617 Paul Scharnofske <asynts+bugs at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |asynts+bugs at gmail dot com --- Comment #2 from Paul Scharnofske <asynts+bugs at gmail dot com> --- I ran into the same issue and produced a slightly different example: ```c++ // foo.cpp export module foo; import bar; namespace foo { export void foo() { } } ``` ```c++ // bar.cpp export module bar; namespace foo { } ``` ```c++ // baz.cpp export module baz; import foo; import bar; int main() { foo::foo(); } ``` ```none $ ~/.local/lib/gcc-trunk/bin/g++ --version g++ (GCC) 12.0.1 20220211 (experimental) Copyright (C) 2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ ~/.local/lib/gcc-trunk/bin/g++ -Wall -Wextra -std=c++20 -fmodules-ts bar.cpp foo.cpp baz.cpp baz.cpp: In function 'int main()': baz.cpp:8:5: error: 'foo' has not been declared 8 | foo::foo(); | ^~~ baz.cpp: At global scope: baz.cpp:2:8: warning: not writing module 'baz' due to errors 2 | export module baz; | ^~~~~~ ``` https://godbolt.org/z/8zMaq6eqr - In other words, the 'export' specifier doesn't even have to be mentioned. It is enough if the same namespace is mentioned even if it is completely empty and not exported. - The issue disappears if the 'import bar' is removed from 'foo.cpp', in other words, this only happens if that module is actually imported. It doesn't matter that it's still imported in 'baz.cpp'.
next prev parent reply other threads:[~2022-02-11 12:47 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-15 19:42 [Bug c++/100617] New: " amorvincitomnia.iw at gmail dot com 2021-05-16 8:53 ` [Bug c++/100617] " amorvincitomnia.iw at gmail dot com 2022-02-11 12:47 ` asynts+bugs at gmail dot com [this message] 2022-02-11 13:02 ` johelegp at gmail dot com 2024-02-11 14:15 ` nshead at gcc dot gnu.org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-100617-4-7jLE9s1RMq@http.gcc.gnu.org/bugzilla/ \ --to=gcc-bugzilla@gcc.gnu.org \ --cc=gcc-bugs@gcc.gnu.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).