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