From owner-freebsd-current Fri Mar 15 19:22:08 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id TAA25287 for current-outgoing; Fri, 15 Mar 1996 19:22:08 -0800 (PST) Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.19]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id TAA25274 for ; Fri, 15 Mar 1996 19:21:57 -0800 (PST) Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.12/8.6.9) id OAA31131; Sat, 16 Mar 1996 14:18:45 +1100 Date: Sat, 16 Mar 1996 14:18:45 +1100 From: Bruce Evans Message-Id: <199603160318.OAA31131@godzilla.zeta.org.au> To: current@freebsd.org, nate@sri.MT.net Subject: Re: GCC fix for long long comparisons Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >jtc >Fri Mar 15 17:55:55 EST 1996 >Update of /a/cvsroot/src/gnu/usr.bin/gcc/common >In directory pain.lcs.mit.edu:/b/tmp/cvs-serv1780 >Modified Files: > expmed.c >Log Message: >Patch from J"orn Rennecke that fixes code generation bugs with long >long comparisons. As of this date, this change hasn't made it into >the development sources. We must consider this when it comes time >to integrate a newer gcc release. >Thu Mar 7 01:16:23 1996 J"orn Rennecke (amylaar@meolyon.hanse.de) > * expmed.c (negate_rtx): Don't negate LONG_MIN if mode is wider > than HOST_WIDE_INT. I think this bug is invoked in our strtouq.c: #include #include main() { printf("%qu\n", strtouq("12345678901", 0, 0)); } prints a number completely unrelated to 12345678901. strtouq.c uses UQUAD_MAX, but the funky expressions for UQUAD_MAX (which is used to work around bugs in very old versions of gcc) sometimes invokes the bug. This seems to be fixed in a different way in gcc-2.7.2. strtouq() works when compiled by gcc-2.7.2. Bruce