From mboxrd@z Thu Jan 1 00:00:00 1970 From: mike stump To: dewar@gnat.com, moshier@moshier.ne.mediaone.net Cc: gcc@gcc.gnu.org Subject: Re: What is acceptable for -ffast-math? (Was: associative law in combine) Date: Tue, 31 Jul 2001 09:22:00 -0000 Message-id: <200107311621.JAA20085@kankakee.wrs.com> X-SW-Source: 2001-07/msg02116.html > From: dewar@gnat.com > To: dewar@gnat.com, moshier@moshier.ne.mediaone.net, mrs@windriver.com > Cc: gcc@gcc.gnu.org > Date: Tue, 31 Jul 2001 11:35:04 -0400 (EDT) > >isn't defined, therefore, we can define it to do anything. > Right, that's what I mean by an upwards compatible extension, i.e. one that > cannot affect any legal defined program. So the answer is indeed for C and > C++ that extensions are allowed freely if they are upwards compatible (this > is not the case in COBOL and Ada), where the standard requires a mode in > which no extensions are made. What did you mean by `are allowed freely'? Did you mean are permitted by the standard? If so, then you are wrong. They are not allowed, there is a requirement upon all processors of the language that they issue a diagnostic. This requirement of a diagnostic is not what I would call `are allowed freely'. If you meant anything else, you can ignore this message. > From: dewar@gnat.com > To: dewar@gnat.com, jbuck@synopsys.COM, mrs@windriver.com > Cc: gcc@gcc.gnu.org, moshier@moshier.ne.mediaone.net > Date: Tue, 31 Jul 2001 11:37:02 -0400 (EDT) > < be a constant greater than 0 and non-negative, there is absolutely no > room for gcc to extend the sematics to include dynamicly sized arrays, > sorry. > >> > I disagree, this is giving the rules for legal, well-define > programs, and the standard has nothing to say about the behavior of > a program that does not follow the above rules. In case it wasn't perfectly clean in the above, I meant, there is no room within the confines of the standard. If you don't disagree with that, you can stop reading now; however, if you do, read on... The standard says nothing about the behavior of any program, you misunderstand the standard. The standard only give requirements on processors of the language. Any violation of any requirement of the standard upon a processor of the lanuage, is a violation of the standard. There is no difference in the standard wether the requirement is for a diagnostic, or for some behavior of running code. Any differentiation made is extra-standard.