till toenges <tt(at)mail.isis.de> wrote:
> Harold Gutch wrote:
> > Das sollte wohl "-O2", nicht "-02" heissen. Auch das ist aber
> > schon nicht mehr unterstuetzt. Wer mehr als nur "-O" setzt,
> > sollte genau wissen was er macht. Prinzipiell ist das ja auch
> > kein FreeBSD Problem, sondern ein gcc-Problem, da gcc eben bei
> > bestimmten Optimierungsflags Fehler produziert, und das nicht nur
> > bei FreeBSD, sondern ueberall. Dass es bei dem einen oder
> > anderen Code das richtige macht, aendert nichts daran, dass man
> > nur, weil etwas was man gebaut hat gut laeuft, noch nicht sagen
> > kann, ob es auch wirklich korrekt compiliert ist und unter allen
> > Bedingungen/Eingabedaten auch wirklich das richtige macht.
>
> Ich persönlich habe noch keine schlechten Erfahrungen mit -O2 oder -O3
> bei eigenen Projekten.
Naja, bei eigenen Projekten kann man ja auch gezielt (oder
nur durch reines Glück) die problematischen Konstrukte ver-
meiden, die solche Bugs im Optimizer von gcc triggern. ;-)
> Aber das erste Problem ist, dass gcc bei -O2 und besonders bei -O3 mehr
> Fehler oder Zweideutigkeiten findet als ohne. D.h. Code, der bei -O
> problemlos compiliert kann durchaus Fehler enthalten, die bei -O2 und
> -O3 vom Compiler gefunden werden.
Das würde ich für einen Verstoß gegen den C99-Standard hal-
ten. Der Optimizer darf nicht die Korrektheit des Parsers
beeinflussen.
Wobei mich persönlich bei gcc nichts wundern würde, denn
standardkonform ist er eh nicht, und besonders hilfreich
sind seine Fehlermeldungen auch nicht. Da habe ich schon
weitaus bessere C-Compiler gesehen -- nur leider nicht
frei. Aber wie sagt man so schön: Einem geschenkten Gaul
schaut man nicht ins Maul ...
> Und in FreeBSD und vielen Ports sind
> solche Fehler oder Zweideutigkeiten drin, weswegen man diese nicht so
> ohne weiteres mit > -O bauen kann, weil der gcc abbricht.
Wenn das tatsächlich der Fall ist, dann ist das ein ziem-
lich absurdes Fehlverhalten des gcc.
> Insbesondere Casts und Pointer Fummeleien sind dafür anfällig.
Zwei gute Argumente gegen C. ;-)
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way. "C++ is to C as Lung Cancer is to Lung." -- Thomas Funke To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Wed 05 May 2004 - 23:43:41 CEST