[xml/sgml-pkgs] Bug#245368: I think this is a gcc bug

Jay Berkenbilt Jay Berkenbilt <ejb@ql.org>, 245368@bugs.debian.org
Tue, 18 May 2004 17:21:29 -0400


Based on your bug report, I decided to grab gcc-3.4 from experimental
and try compiling xerces23 with it.  I see this error and some others
that are the result of the same issue, but I believe they are actually
gcc errors, not problems in the xerces23 code.

Consider this code fragment:

template <class T>
class A
{
  protected:
    int f;
};

template <class T>
class B: public A<T>
{
  public:
    B()
    {
	f = 1;
    }
};

gcc-3.3 thinks this is okay, but gcc-3.4 complains.  (This is
identical to the problem your patch fixes.)

However, changing "f = 1" above to "this->f = 1" removes the problem,
as does changing it to A<T>::f (similar to what your patch does) or
B<T>::f.  I'm pretty sure this is a gcc bug as I'm not aware of any
instance in the language where this->f should be different from f when
there is only one possible f in the current scope.

I'll post a bug report against gcc about this.  Maybe someone more
familiar with the spec can show a passage that indicates that I am
wrong about this.

-- 
Jay Berkenbilt <ejb@ql.org>
http://www.ql.org/q/