On Mon, 22 Jan 2001, Jacob Killian wrote:

> The portability I can live with, since, as one of you said, this is true of any
> gcc release until a standard for the c++ ABI is set (and probably afterwards
> since standards are by nature a work in progress).  The "we do not recommend
> ... production purposes," is what has me anxious.  Any comments?

In our experience, 2.96-71 seems to be MORE stable than 2.95.3pre, not
less (and we're compiling the entire distribution, powertools, and more).

The initial version that came with 7 had a couple of problems (most of
them can't be noticed with clean code, though); the version from updates
solves all known problems.

Most of the people still complaining about 2.96-70 or even -71 are in fact
using broken code and blaming it on the compiler because "it works with
egcs 1.1.2".

For example, trying to compile this with C++:

main()
{
        void const *a;
        void *b;
        b=a;
}

will result in an error message in 2.96-x, while older gccs accept the
code.
This is a bug in older gccs.

The same goes for code like

int xyz() throw(some::exception);
xyz() { }

or

class a {
private:
        enum foo { x, y, z };
}
class b {
        enum a::foo x;
}

None of these constructs are valid C++, but old gccs accept it because
they are not standards compliant.

The same goes for using something like
        int or=1;

in C - ISO C99 says or must be preprocessed to || before anything else,
and int ||=1; is definitely not valid code.

LLaP
bero




_______________________________________________
Redhat-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to