------- Additional Comments From manus at eiffel dot com 2004-11-11 20:04 ------- Sorry to come back and buzz you again. I just realized that because of this change in behavior of gcc you broke not just my code, but also the code of the people using our Eiffel compiler. Indeed our compiler generates C code that is compiled most of the time with `gcc'. If people upgrade their `gcc' compiler to 3.4 then the generated code compiles but does not work anymore since it will raise an exception.
You said that raising the exception was an acceptable solution for an undefined behavior per the C99 standard. However what you just did is to break existing code that relied on previous implementation of `gcc' (I can tell that we have using this scheme for more than 10 years) and thus this is something for which it might be good to go back to the previous code generation/behavior. If the previous behavior made the inliner crash, then you can either fix it, or consider that a crash is simply a symptom of undefined behavior and therefore you are still compliant to the standard. With best regards, Manu -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18411