http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45351

--- Comment #10 from Jay <jay.krell at cornell dot edu> 2011-07-19 15:58:04 UTC 
---
>> Is there no annotation in /usr/include/whatever.h to get the required
>> alignment? Maybe that gcc doesn't-but-maybe-should understand?
>
> No, the section I cited is all there is.  No idea why this error doesn't
> show up otherwise.


Do struct alignment rules on Tru64 have an effect? Not that I
looked-up/read the ABI details..
I'm not sure I have Tru64 access any longer (and my
time/work/money-to-burn has dramatically declined, sorry, it was fun!)
But I'd be curious what this does:

#include something
#include stddef.h


int main()
{
typedef struct { char a; sem_t b; } t1;
 printf("%u %u\n", sizeof(t1), offsetof(t1, b));
 return 0;
}

  5 or 6 or 8 or other?
  and 1 or 2 or 4 or other?
  If the alignment is really only 2, then I'd expect 6 and 2.
  If the alignment is somehow bumped up, then 8 and 4.


The code cited does seem poor.
Personally I'm a big fan of memset(p, 0, n) (or #define ZeroMemory(p, n)).


 - Jay

Reply via email to