🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.gcc.bug
Article #1055

Re: Bug in cygnus 2.0.1 (2.1 and 2.2.2 of mainstream)

#1055
From: Michael Salmon
Date: Thu, 03 Sep 1992 07:47
49 lines
2036 bytes
In article <X3NgqB3w164w@kryton.UUCP>,
system@kryton.UUCP (Scott Beckstead) writes:
|> I am currently porting a cygnus version of gcc (gpp objc etc.) to a new system.
|> In my libraries (ansi) strcmp return -1 for less than, 1 for greater than and
|> 0 for equality.  The spec merely states negative for less than positive for greater
|> than and 0 for equal.  Yet in the file rtl.c There is a code fragment that 
|> looks like this 
|> 
|> 	if(!strcmp(somevalue,someothervalue))
|> 		someaction;
|> 
|> This seems like a particularly BAD idea considering the values returned by
|> this fully ansi compliant library (yes it does change the behavior of
|> the programs)  I have modified my library to fix this but the code
|> really should be fixed so that a unary not of a non boolean return
|> is not used as a boolean.  Because with the value -1 I'm sure you see the
|> problem.  (!(-1) is 0 but !(1) is -2 and !(0) is -1) 

I think that you are confusing ! with ~ as I hope that this shows.

 eos6c02 tmp 11 > cat testcode.c
#include <stdio.h>

int main()
{
    int i;

    for ( i = -1; i <= 1; ++i)
        printf( "!(%2d) == %2d, ~(%2d) == %2d.\n", i, !i, i, ~i);
    
    return 0;
}
 eos6c02 tmp 12 > testcode
!(-1) ==  0, ~(-1) ==  0.
!( 0) ==  1, ~( 0) == -1.
!( 1) ==  0, ~( 1) == -2.

In C, 0 is false everything else is true.

-- 

Michael Salmon

#include	<standard.disclaimer>
#include	<witty.saying>
#include	<fancy.pseudo.graphics>

Ericsson Telecom AB
Stockholm
Technical Details
Message-ID: <1992Sep3.074701.4145@ericsson.se>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!eos.ericsson.SE!etxmesa
References: <X3NgqB3w164w@kryton.UUCP>

Show Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!eos.ericsson.SE!etxmesa
From: etxmesa@eos.ericsson.SE (Michael Salmon)
Subject: Re: Bug in cygnus 2.0.1 (2.1 and 2.2.2 of mainstream)
Message-ID: <1992Sep3.074701.4145@ericsson.se>
Sender: gnulists@ai.mit.edu
Reply-To: etxmesa@eos.ericsson.se (Michael Salmon)
Organization: Ericsson Telecom AB
References: <X3NgqB3w164w@kryton.UUCP>
Distribution: gnu
Date: Thu, 3 Sep 1992 07:47:01 GMT
Approved: bug-gcc@prep.ai.mit.edu
Lines: 50