Results of a test mass rebuild of rawhide-20090126 with gcc-4.4.0-0.9

Jason L Tibbitts III tibbs at math.uh.edu
Tue Feb 3 23:40:33 UTC 2009


>>>>> "JJ" == Jakub Jelinek <jakub at redhat.com> writes:

JJ> - 30 failures
JJ> Unsorted stuff that succeeds to build with 4.3 and fails to build
JJ> with 4.4.

Unfortunately this includes my package xu4, and while I do have some
C++ experience (college was some time ago), the exact reason this has
just started failing with 4.4 is eluding me.

The code does this:

/**
 * An abstract interface for file access.
 */
class U4FILE {
public:
    virtual ~U4FILE() {}

    virtual void close() = 0;
    virtual int seek(long offset, int whence) = 0;
    virtual long tell() = 0;
    virtual size_t read(void *ptr, size_t size, size_t nmemb) = 0;
    virtual int getc() = 0;
    virtual int putc(int c) = 0;
    virtual long length() = 0;

    int getshort();
};

which, while fine in GCC 4.3, produces this with GCC 4.4:
u4file.h:66:27: error: macro "putc" requires 2 arguments, but only 1 given
u4file.h:66: error: ISO C++ forbids initialization of member 'putc'
u4file.h:66: error: making 'putc' static
u4file.h:66: error: ISO C++ forbids in-class initialization of non-const static member 'putc'
u4file.h:66: error: 'putc' declared as a 'virtual' field

The purpose is to inherit from this base class and replace some
methods with variants that transparently operate on zip files.  I'm
guessing here that putc has become a macro and that I need to rename
the putc member, but that mightn't be a small patch so I figured I'd
check for a simpler way before trying to hack that up.

 - J<




More information about the devel mailing list