Problems with throw() in system calls

Rob Taylor robt@flyingpig.com
Tue Dec 19 06:37:00 GMT 2000


there's a problem between the new strictness of throw() defines and lex.

It seams that until recent gcc took
void bar() throw(); and
void bar();
to be the same function but now does not. this causes a problem with glibc on
linux and lex.

in sys/cdefs.h, if __GNUC__>=3 , throw() is added after all system calls ('for
optimisation'). lex redeclares isatty in its generated output. they clash now,
whereas before they didn't.

as you can tell, thsis is an icky sticky problem - someone's wrong (I'd point at
lex), but the blame isn't clear - one oprion is an option in gcc to turn off
this level of strictness. Is this possible?

Thanks,


Rob Taylor
Flying Pig Systems



More information about the Gcc mailing list