align(n) not working as expected

%u wfunction at hotmail.com
Mon Dec 27 23:32:37 PST 2010


Hi,

I'm not sure if I'm doing something wrong, but it seems like struct alignment
isn't really working. (I just found out that I'm not supposed to post this on
the digitalmars.D.bugs newsgroup, so I'm posting it here.)

When I execute this code:

 struct Temp
 {
  ubyte x;
  align(16) ubyte y;
 }
 auto o = Temp();
 std.stdio.writefln("Address of aligned fields: %#x, %#x", cast(size_t)&o.x,
cast(size_t)&o.y);

I get these addresses:
 0x18fd00, 0x18fd01
the second of which is not aligned on a 16-byte boundary.


Am I doing something wrong, or is this a bug?

Thank you!


More information about the Digitalmars-d mailing list