[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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

>>>>> "JJ" == Jakub Jelinek <jakub 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 {
    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<

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]