From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26557 invoked by alias); 4 Feb 2003 00:26:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 26518 invoked by uid 71); 4 Feb 2003 00:26:00 -0000 Date: Tue, 04 Feb 2003 00:26:00 -0000 Message-ID: <20030204002600.26517.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Wolfgang Bangerth Subject: Re: c++/9558: subclass cannot find parent members without explicit "this->" in some cases Reply-To: Wolfgang Bangerth X-SW-Source: 2003-02/txt/msg00164.txt.bz2 List-Id: The following reply was made to PR c++/9558; it has been noted by GNATS. From: Wolfgang Bangerth To: "Ryan C. Gordon" Cc: gcc-bugs@gcc.gnu.org, Subject: Re: c++/9558: subclass cannot find parent members without explicit "this->" in some cases Date: Mon, 3 Feb 2003 18:21:52 -0600 (CST) > If that's how C++ works in the official spec, it's not how it works in > real life. I think we all understand this, but this is just so because compilers previously didn't implement the standard correctly and did not _force_ you to write compliant code. Mark et al dared to do so in the new parser. > I've got half a million lines of code in Unreal Tournament 2003 that > this "feature" breaks, which compile fine on everything from CodeWarrior > to Intel's compiler to Visual C to GCC 2.95.3, 3.1, and 3.2. I can list > at least five other games I've worked on that this breaks. I do not > control or write this code, I just port it. gcc 2.95 ... 3.2 accept it, but just because they don't implement the standard. Intel icc accepts it, unless for example you switch on -Xc -ansi. If you do so, then it won't accept your code either. AFAIK, the same holds for HP's aCC. The situation might be worse than you think: if two-stage name lookup is not implemented, then you might get wrong results sometimes. So you have to decide whether you implement the standard or the old status quo. > Surely there's got to be some consideration for backwards compatibility, > if not real world issues? I think the answer will be: if you want to use a newer compiler, fix your code. I fixed my 250k lines of code, which was painful admittedly, but I think it's necessary. W. ------------------------------------------------------------------------- Wolfgang Bangerth email: bangerth@ticam.utexas.edu www: http://www.ticam.utexas.edu/~bangerth/