🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c
Article #4573

Re: Undefined result vs. int's holding undefined values.

#4573
From: Tanmoy Bhattacharya
Date: Sat, 06 Jan 1996 00:11
49 lines
2479 bytes
In article <4ck70b$rd7@news.informix.com>, Daniel Wood <dwood> writes:
|> THE TEST CASE, on SCO:
|> 
|> main() { f(-2147483647, 1879048192); }
|> 
|> f(int x, int y) {
|> 	int r;
|> 
|> 	if ((r=(x-y)) > 0)
|> 		printf("1: r greater than 0\n");
|> 
|> 	if (r > 0)
|> 		printf("2: r greater than 0\n");
|> }
|> 
|> On SCO only the second print occurs.  The reason given to me is that ANSI
|> states
|> that the result of an overflowing/underflowing operation is undefined.  The
|> implementation is free to do what it wants with the result.  This is fine
<snip>
|> Saying a result is undefined "IS NOT EQUAL TO" saying that a C int
variable 
|> can actually hold an undefined value.  If you think the test case is
running 
|> acceptably, as described above, then tell me the section of the standard
that 
|> states or implies that an int variable can hold an undefined value.
|> 
|> Why say ye all?

3.14 defines `undefined behaviour' as `behaviour, upon use of nonportable or
erroneous program construct, of errnoeous data, or of indeterminately valued
objects, for which this International Standard imposes no requirements.' Note
that the entire _behaviour_ is undefined if erroneous data or an
indeterminately valued object is used. So, a compiler is within rights to do
whatever it sees fit, because it is not bound by any `requirements' of the
standard including, inter alia, the requirement that the value of a variable
not change arbitrarily; or that the controlled statement in an if be executed
if the control expressions evaluates unequal to 0.

Cheers
Tanmoy
-- 
tanmoy@qcd.lanl.gov(128.165.23.46) DECNET: BETA::"tanmoy@lanl.gov"(1.218=1242)
Tanmoy Bhattacharya O:T-8(MS B285)LANL,NM87545 H:#9,3000,Trinity Drive,NM87544
Others see <gopher://yaleinfo.yale.edu:7700/00/Internet-People/internet-mail>,
<http://alpha.acast.nova.edu/cgi-bin/inmgq.pl>or<ftp://csd4.csd.uwm.edu/pub/
internetwork-mail-guide>. -- <http://nqcd.lanl.gov/people/tanmoy/tanmoy.html>
fax: 1 (505) 665 3003   voice: 1 (505) 665 4733    [ Home: 1 (505) 662 5596 ]
Technical Details
Message-ID: <4ckeo4$sf5@newshost.lanl.gov>
Path: arc1-ca.pugleaf.net!qcd.lanl.gov!tanmoy
References: <4ck70b$rd7@news.informix.com>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!qcd.lanl.gov!tanmoy
From: tanmoy@qcd.lanl.gov (Tanmoy Bhattacharya)
Newsgroups: comp.std.c
Subject: Re: Undefined result vs. int's holding undefined values.
Date: 6 Jan 1996 00:11:48 GMT
Organization: Los Alamos National Laboratory
Distribution: world
Message-ID: <4ckeo4$sf5@newshost.lanl.gov>
References: <4ck70b$rd7@news.informix.com>
NNTP-Posting-Host: qcd.lanl.gov