On Wed, 23 Apr 2008, Andy Dougherty wrote: > 2. There are some casting and type-punning warnings that have, as their > ultimate cause, the STACK_DATAP() macro. Getting rid of the > type-punning warning gives rise to a cast alignment warning. > > Looking up a level, the only uses for that macro are to return > Stack_Entry_t pointers. Why not be explicit about it in the definition > in include/parrot/stacks.h? The attached patch tries to do just that. > I haven't tested this, but it looks like it ought to work.
Oops. It won't work because I missed a level of indirection. > - return STACK_DATAP(new_chunk); That used to return &(new_chunk->u.data) > + return new_chunk->u.stdata; And this returns new_chunk->u.stdata instead. Oops. I can only say I was fooled by the function signatures that these functions returned 'void *', when they actually return 'void **'. I'll try to fix that. I apologize in advance if I wasted anyone's time trying this out. (I still think my basic premise is right -- we can avoid pointer cast warnings and problems if we declare more explicitly what we wish to do.) -- Andy Dougherty [EMAIL PROTECTED]