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,4c08cfbd3f797c1c X-Google-Attributes: gid103376,public From: falis@ma.aonix.com (Ed Falis) Subject: Re: simple question - how to emulate void * ? Date: 1998/10/23 Message-ID: <1104_909142646@DZOG-CHEN>#1/1 X-Deja-AN: 404256770 Sender: news@sd.aonix.com (USENET News Admin @flash) X-Nntp-Posting-Host: 192.157.137.14 References: <9v6hGdgMLuwN-pn2-Oc41W71Dq3U9@dt182n2f.tampabay.rr.com> <362EF435.7575@ddre.dk> <70pfpm$qe5@gcsin3.geccs.gecm.com> Organization: Aonix, San Diego, CA, USA Newsgroups: comp.lang.ada Date: 1998-10-23T00:00:00+00:00 List-Id: > Hans Marqvardsen wrote: > > Works on Irix 6.4, GNAT 3.07 (?) > > <..snip..> > > >> Temp := Temp + 1; > > >Strangely, using OA 7.1.1 it wont compile. > >Error message: > > Temp := Temp + 1; > > Line 20 col 23: the expression is ambiguous. > In OA, both System and System.Storage_Units declare "+" operators with Address and Integer or Storage_Offset respectively. Since there are use clauses for both units, the compiler doesn't know how to interpret the numeric literal "1" on the right hand side of the expression. So, eliminate one of the use clauses, or qualify the literal, e.g. Integer'(1) or Storage_Offset'(1), and the code will compile and execute. My guess is that the address arithmetic in OA System was left in for compatibility with the Alsys Ada 83 compilers it replaced. - Ed Falis Aonix