Open redstar opened 8 years ago
See https://github.com/D-Programming-Language/dmd/pull/5454 for the failure in test22.d
.
test22.d
should be fixed now.
The (first) failure in arrayop.d
is in line 45. It is an assignment: b = [1, 2, 3];
Still unclear what is happening.
Looks like an alignment issue:
0x0808901c <+76>: movaps 0x807ea10,%xmm0
=> 0x08089023 <+83>: movaps %xmm0,-0x2c8(%esi)
%esi: 0xfe750540 -25885376
The resulting address is only 8-byte aligned but movaps
requires an 16-byte aligned address.
Maybe related, but I see misalignments, too, when building Win64 phobos release unittests with LLVM 3.8.
Dumping object files, I noticed that the same XMM constant symbol happens to exist as a 16-byte-aligned normal section in one object file, but also as 8-byte-aligned COMDAT in another. According to the map file, the symbol picked up by the linker is the COMDAT and is therefore misaligned.
@redstar Is this still present in LDC 1.3+ ?
The following failures in the dmd testsuite are still present:
relocation requires reference symbol
:test34.d
using option-O
andtest42.d
using option-inline
(This could be a tool problem. ld version 2.23.1 is used.)Assertion failure
:test22.d
(Could be a bug in the test case, see functionpoly_asm()
.)Test failed: caught signal: 11
:arrayop.d
using option-O