https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79767
Bug ID: 79767 Summary: inline namespace and unqualified definition Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: nathan at gcc dot gnu.org Target Milestone: --- Created attachment 40854 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40854&action=edit exemplar When an inline namespace provides a declaration, an unqualified definition in the containing namespace will create a new definition rather than complete the declaration. This is contrary to the case when a qualified name is used naming the containing namespace only. The attached testcase will emit an error about an ambiguous overload of P -- Y::P vs Y::X::P. Not sure if this is expected behaviour, but it surprised me.