From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,aa7b0448abeecbba X-Google-Attributes: gid103376,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: How to print Task_ID type? (GNAT SunOS) Date: 1996/04/06 Message-ID: #1/1 X-Deja-AN: 146087701 references: <4xu3yzpoi7.fsf@leibniz.enst-bretagne.fr> <4k1ma9$brt@michp1.redstone.army.mil> <4k50tc$7ge@mulga.cs.mu.OZ.AU> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-04-06T00:00:00+00:00 List-Id: Fergus says "This is because the C standard allows implementations to represent different pointer types differently." That's true, but in practice very rarely taken advantage of. The Ada standard permits this too of course, and GNAT does take advantage of this (using double width pointers for pointers to unconstrained arrays). It is surprising how MUCH Ada code out there relies on the assumption that all pointers are the same size as addresses. n fact we ran into this so often in GNAT, that now GNAT allows you to specify the size of an access type, and force this to be true if you want it, e.g. type g is access string; for g'size use address'size; This representation is less time efficient but lots of existing Ada code had this assumption deeply built in.