Hi Eric,

Eric Blake wrote:
> On x86 architecture:
> $ echo 'eval((1<<31)/-1)'|m4
> Floating point exception (core dumped)
> 
> Fixed as shown below.

Nice catch!  Who would have thought we were carrying so many little bugs
after 12 years or more in service?  :-)

> Meanwhile, should 1.4.5 change the eval operator precedence to match C, or
> leave it alone?

Since HEAD already makes decisions at runtime based on -G and $POSIXLY_CORRECT,
we can support C precedence by default, and revert to traditional precedence
in traditional mode unless POSIXLY_CORRECT is also set.

I think 1.4.5 should probably leave it alone, as this is what 1.4.x users are
probably used to... unless we start looking at POSIXLY_CORRECT in branch-1_4
too...

> As an example of where GNU and traditional Solaris go
> wrong, but Solaris xpg4 matches POSIX:
> $ echo 'eval(!0*2)'|m4
> 1
> $ echo 'eval(!0*2)'|/usr/ccs/bin/m4
> 1
> $ echo 'eval(!0*2)'|/usr/xpg4/bin/m4
> 2

Cheers,
        Gary.
-- 
Gary V. Vaughan      ())_.  [EMAIL PROTECTED],gnu.org}
Research Scientist   ( '/   http://blog.azazil.net
GNU Hacker           / )=   http://trac.azazil.net/projects/libtool
Technical Author   `(_~)_   http://sources.redhat.com/autobook

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
M4-patches mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/m4-patches

Reply via email to