This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Language Changes in Bug-fix Releases?

On Wed, Sep 07, 2005 at 09:55:29PM +0200, Richard B. Kreckel wrote:
> On 7 Sep 2005, Gabriel Dos Reis wrote:
> > Mike Stump <> writes:
> > | I'll echo the generalized request that we try and avoid tightenings
> > | on other than x.y.0 releases.
> >
> > I hear you.  In this specific case, it worths remembering people that
> > the issue is not just an accept-invalid that was turned into
> > reject-invalid, but wrong-code generation (in the sense that
> > wrong-code was being genereted for *valid* program) that was fixed.
> I'm unable to find which wrong-code generation PR was fixed by reading
> this thread.  That applies to any of the two examples I posted.
> Anyway, as I mentioned: If this broken code was a collateral damage of a
> really serious bug, then it would be foolish to complain.  It's just that
> I'm having difficulties imagining how accepting a friend declaration as a
> forward declaration (which by the way worked since at least GCC 2.7.x) can
> make your code accidentally fire that ballistic rocket.  (If it really
> can, then you're having a truck load of other problems besides code
> quality.)

In the hopes that it will help the discussion I ran regression hunts on
the two test cases.  The first test:

  struct foo {
    friend class bar;
    void screw (bar&);

is rejected starting with this 4.0 patch:

The second test:

  struct lala {
    void f () const {}
  struct lulu {
    template<class T> lulu (void (T::*)()) {}
  lulu froobrazzz(&lala::f);

is rejected starting with this 4.0 patch:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]