Follow up on static bug (is it a bug?)

David Durham david.durham@wcom.com
Tue Jul 24 10:01:00 GMT 2001


To repeat...

I believe this is a bug in gcc 3.0
Forgive me if it's already known about...

The following code used to be valid ( <=2.95.3 ):

struct foo
{
        char field[25];

        static int getSize()
        {
                return(sizeof(field));
        }
};

 
Here it reports that in foo::getSize, foo::field cannot be referenced 
since it is non-static and foo::getSize is static, however the used of 
sizeof/typeof/etc should make it valid.  Is there something about ANSI 
C99 and the fact that arrays can have non-constant sizes or something?

...

Also, since then I've discovered that the following is also invalid

sizeof(foo::field)

... or ... 

(&foo::field)   <- which should give the offset of the field


This is invalid in any ole non-member function 



Thanks,
    -- Davy







More information about the Gcc-bugs mailing list