digitalmars.D.bugs - [Issue 2692] New: alignment of double on x86 linux is incorrect
- d-bugmail puremagic.com (46/46) Feb 27 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2692
- d-bugmail puremagic.com (9/9) Apr 01 2009 http://d.puremagic.com/issues/show_bug.cgi?id=2692
http://d.puremagic.com/issues/show_bug.cgi?id=2692 Summary: alignment of double on x86 linux is incorrect Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Keywords: wrong-code Severity: major Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: tomas famolsen.dk See this testcase, DMD fails the second assertion, so it does not match the companion C compiler (which is gcc on linux) as per spec. The correct alignment of double is 4. D CODE: ======= void main() { Foo f = foo(); assert(f.i == 42); assert(f.d == 2.5); } extern(C): struct Foo { int i; double d; } Foo foo(); C CODE: ======= typedef struct { int i; double d; } S; S foo(void) { S s; s.i = 42; s.d = 2.5; return s; } --
Feb 27 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2692 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed DMD 1.042 and 2.027 --
Apr 01 2009