[MLton] x86_64 port status

Matthew Fluet fluet@cs.cornell.edu
Wed, 10 May 2006 22:53:52 -0400 (EDT)


>> Perhaps a better approach would be to define the following:
>>
>>    struct PointerAux { unsigned char[4]; } __attribute__ ((aligned (4));
>>    typedef struct PointerAux* Pointer;
>
> I tried this out and it worked well.  To be clear, I used
>
>  struct PointerAux { unsigned char z[4]; } __attribute__ ((aligned (4)));
>
> This cut down the number of "cast increases required alignment" warnings
> from 143 to 95.  All of the warnings eliminated were from basis/*
> files.

Could you see if

   typedef unsigned char PointerAux __attribute__ ((aligned (4), may_alias));
   typedef PointerAux* Pointer;

also suppresses the "cast increases required alignment" warnings?  I think 
it is a little closer to our intentions.