[m-rev.] diff: rtti_implementation type bug on .NET

Fergus Henderson fjh at cs.mu.OZ.AU
Fri Nov 14 01:41:32 AEDT 2003


On 13-Nov-2003, Peter Ross <pro at missioncriticalit.com> wrote:
> On Fri, Nov 14, 2003 at 12:32:42AM +1100, Fergus Henderson wrote:
> > On 13-Nov-2003, Peter Ross <pro at missioncriticalit.com> wrote:
> > > -:- func null = T.
> > > +:- func null_string = string.
> > >  :- pragma foreign_proc("C",
> > > -	null = (T::out),
> > > +	null_string = (Str::out),
> > >  	[will_not_call_mercury, thread_safe, promise_pure],
> > >  "
> > > -	T = (MR_Word) NULL;
> > > +	Str = (MR_Word) NULL;
> > 
> > That line will be a type error now.
>
> Didn't actually cause any problems, but it is deleted now.

It would have caused future portability problems.

> > I think you just need to delete the cast.
> > But please check that it compiles in non-IL grades without any warnings.
>
> It compiles fine both before and after in asm_fast.gc.

The fact that it compiles fine before is a bug in GCC.  And also in lcc!
And also in Sun C!!  Amazing that three different C compilers all have
exactly the same bug.

Comeau C gets it right, though, and issues an error message.

I have reported this bug to the GCC developers (it is bug #13038).

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list