Email List: Xaustin-group-lX
[All Lists]

RE: [1003.1(2008)/Issue 7 0000074]: Pointer Types Problem

To: "Vincent Lefevre" <vincent-opgr@xxxxxxxxxx>, <austin-group-l@xxxxxxxxxxxxx>
Subject: RE: [1003.1(2008)/Issue 7 0000074]: Pointer Types Problem
From: "Wojtek Lerch" <Wojtek@xxxxxxx>
Date: Mon, 6 Jul 2009 16:58:51 -0400
References: <e26e5335cda9d0dfe49395e6115066fe@austingroupbugs.net> <1730938080F74546ACC51CB65BA00565@ott.qnx.com> <20090702094404.GA28393@squonk.masqnet> <4A4CC239.2040603@qnx.com> <5030E566C603DA449D6B4C060CE529B73A8F37@MCHP7RDA.ww002.siemens.net> <4A4D2366.9090904@qnx.com> <5030E566C603DA449D6B4C060CE529B73A8FF1@MCHP7RDA.ww002.siemens.net> <9FC357E76048C74C93F3BD3D69A16B88045640D3@nova.ott.qnx.com> <5030E566C603DA449D6B4C060CE529B73CED91@MCHP7RDA.ww002.siemens.net> <9FC357E76048C74C93F3BD3D69A16B8804564322@nova.ott.qnx.com> <20090706165136.GQ29510@prunille.vinc17.org>
Thread-index: Acn+Wkys0RY2TfdPTriJ+QVObjcmNgAIOHQg
Thread-topic: [1003.1(2008)/Issue 7 0000074]: Pointer Types Problem
> From: Vincent Lefevre [mailto:vincent-opgr@vinc17.org] 
> > But you are introducing non-null pointers that don't point 
> > to any object or past the end of an array.
> 
> Such pointers can exist, e.g. a pointer that points to some object
> in a malloc'ed area will no longer point to an object (or past the
> end of an array) after the area is freed by free().

That's an example of what C calls, rather confusingly, an "indeterminate
value".  An indeterminate value never exists as a value ("rvalue", such
as the value of an expression) -- it can only exist as the content of an
object, because any attempt to read it from the object is automatically
undefined.  You can't copy it to another variable by assignment (even
though you can via memcpy()), you can't compare it to another value, and
you can't return it from a function.  Introducing a new category of
pointer values that can be returned from dlsym(), stored in variables
and read back, and converted to pointers to function in a predictable
way, despite otherwise being indeterminate values, sounds like a major
rewrite of the basic concepts of C.


<Prev in Thread] Current Thread [Next in Thread>