public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
From: "nathan at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/13590] [3.3/3.4/3.5 regression] Non-existing ambiguity when inhering through virtuals two identical using declarations. Date: Fri, 05 Mar 2004 14:44:00 -0000 [thread overview] Message-ID: <20040305144449.18991.qmail@sources.redhat.com> (raw) In-Reply-To: <20040106205426.13590.boris@kolpackov.net> ------- Additional Comments From nathan at gcc dot gnu dot org 2004-03-05 14:44 ------- I am not conviced this code is valid. [10.2] describes member name lookup in an MI lattice, and says that 'each declaration that was introduced by a using-declaration is considered to be from each subobject of C that is of the type containg the declaration descignated by the using declaration'. ... 'if the resulting set of declarations are not all from sbobjects of the same type ... there is an ambiguity'. Whilst those rules make sense for data members, they do not for function members. The set of overloaded functions can include some from a base, brought in by a using declaration, and some declared in the class containing the using declaration [7.3.3]/12 If those from the base were considered to actually be from the base, then we'd have a set from differnt types, so be ambiguous. Thus, I think we have to consider overloaded functions to be from the class containing the using declaration (and not the class being used). If that is the case, then the code is ill-formed, even though both using declarations refer to the same unambiguous base object. The original testcase had added an overload on one path through the graph, if we augment the case with an additional overload on the other path, it quite clearly must be ambiguous (because it would be without the using declarations). Wolfgang's reduced test case, with just using declarations it the other interesting example. If we treat this as ambiguous, then it appears that (in other useages), we could use using declarations to resolve inherited member ambiguities -- something expressly forbidden by [10.2] (footnote 96). So this argues that the reduced case should be well formed. But, now we have some strangeness. Whether a function using declaration's naming class is the class of the using declaration of the class of the used declaration depends on whether there are any additional overloads. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13590
next prev parent reply other threads:[~2004-03-05 14:44 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2004-01-06 20:54 [Bug c++/13590] New: unexpected overload resolution boris at kolpackov dot net 2004-01-06 21:10 ` [Bug c++/13590] " bangerth at dealii dot org 2004-01-06 21:56 ` boris at kolpackov dot net 2004-01-06 23:00 ` bangerth at dealii dot org 2004-01-06 23:15 ` boris at kolpackov dot net 2004-01-07 14:01 ` bangerth at dealii dot org 2004-01-11 1:05 ` [Bug c++/13590] [3.3/3.4 regression] Non-existing ambiguity when inhering through virtuals two identical using declarations giovannibajo at libero dot it 2004-01-11 1:13 ` pinskia at gcc dot gnu dot org 2004-03-05 14:44 ` nathan at gcc dot gnu dot org [this message] 2004-03-05 14:56 ` [Bug c++/13590] [3.3/3.4/3.5 " giovannibajo at libero dot it 2004-03-09 7:40 ` mmitchel at gcc dot gnu dot org 2004-06-10 20:10 ` jason at gcc dot gnu dot org 2004-06-10 22:19 ` [Bug c++/13590] [3.3/3.4/3.5 regression] [DR39] " pinskia at gcc dot gnu dot org 2004-06-18 23:46 ` mmitchel at gcc dot gnu dot org 2004-08-03 14:31 ` boris at kolpackov dot net 2004-08-14 7:21 ` pinskia at gcc dot gnu dot org 2004-10-19 11:37 ` [Bug c++/13590] [3.3/3.4/4.0 " pinskia at gcc dot gnu dot org 2005-08-31 19:34 ` [Bug c++/13590] " redi at gcc dot gnu dot org 2005-08-31 19:35 ` pinskia at gcc dot gnu dot 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=20040305144449.18991.qmail@sources.redhat.com \ --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).