🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.c
Article #1606

constant expressions

#1606
From: Dave Hanson
Date: Fri, 17 Aug 1990 12:23
19 lines
1255 bytes
>> char * a;
>> a = 1-1;
 
>the assignment of an integer to a pointer is legal
>iff the integer is a null pointer constant,
>which by sec. 3.2.2.3 must be an integral constant
>expression with the value 0.
>so the 1-1 in the expressions above must
>be computed at compile time to determine legality.
 
Yes, because 3.3.16.1 has it in a constraints section.
So it appears that, where the standard says that the compiler CAN
compute constants at translation time, the standard almost lies.
The compiler MUST compute constants at translation time.
This is unfortunate (because a cross-compiler will become difficult).
(It's not quite a lie because the standard's words don't contradict each
other, only the implications do.  Why say "can" when it means "must"?)
 
-- Norman Diamond    diamond@tkou02.enet.dec.com
Technical Details
Message-ID: <1958@rossignol.Princeton.EDU>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!wuarchive!udel!princeton!cs!cs.Princeton.EDU!drh

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!wuarchive!udel!princeton!cs!cs.Princeton.EDU!drh
From: drh@cs.Princeton.EDU (Dave Hanson)
Newsgroups: comp.std.c
Subject: constant expressions
Message-ID: <1958@rossignol.Princeton.EDU>
Date: 17 Aug 90 12:23:24 GMT
Sender: news@cs.Princeton.EDU
Organization: Dept. of Computer Science, Princeton University
Lines: 19