[Bug d/87824] x86_64-linux multilib issues
ibuclaw at gdcproject dot org
gcc-bugzilla@gcc.gnu.org
Sat Nov 10 12:04:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87824
--- Comment #3 from Iain Buclaw <ibuclaw at gdcproject dot org> ---
(In reply to Jakub Jelinek from comment #1)
> In i686-linux bootstrap/regtest, I see:
> === gdc tests ===
>
>
> Running target unix
> FAIL: runnable/cppa.d execution test
> FAIL: runnable/cppa.d -g execution test
> FAIL: runnable/cppa.d -g -shared-libphobos execution test
> FAIL: runnable/cppa.d -shared-libphobos execution test
This would be dependent on available C++ libraries I guess. I couldn't
reproduce locally, I'll try in a more controlled environment.
> FAIL: runnable/eh.d -O2 execution test
> FAIL: runnable/eh.d -O2 -shared-libphobos execution test
On x86, the EH handling is unable to determine that two independently thrown
exceptions should be chained together.
Currently this is determined by comparing the LSDA, but this doesn't work when
a function is partitioned into hot and cold blocks.
> FAIL: runnable/nulltype.d execution test
> FAIL: runnable/nulltype.d -O2 execution test
> FAIL: runnable/nulltype.d -O2 -shared-libphobos execution test
> FAIL: runnable/nulltype.d -g execution test
> FAIL: runnable/nulltype.d -g -O2 execution test
> FAIL: runnable/nulltype.d -g -O2 -shared-libphobos execution test
> FAIL: runnable/nulltype.d -g -shared-libphobos execution test
> FAIL: runnable/nulltype.d -shared-libphobos execution test
This is related to returning null associative array types - internally, a
struct{void *ptr}.
Returning {.ptr=NULL} instead of {} is enough for the unoptimized tests to
pass. For the optimized tests, also setting TYPE_TRANSPARENT_AGGR seems to be
required as well.
It does make sense as part of the D language to treat associative arrays as
just a void*, though I wouldn't know why not setting TYPE_TRANSPARENT_AGGR
would have an affect on returning {} in an apparent wrong way.
> FAIL: runnable/template1.d execution test
> FAIL: runnable/template1.d -O2 execution test
> FAIL: runnable/template1.d -O2 -frelease execution test
> FAIL: runnable/template1.d -O2 -frelease -shared-libphobos execution test
> FAIL: runnable/template1.d -O2 -shared-libphobos execution test
> FAIL: runnable/template1.d -frelease execution test
> FAIL: runnable/template1.d -frelease -shared-libphobos execution test
> FAIL: runnable/template1.d -g execution test
> FAIL: runnable/template1.d -g -O2 execution test
> FAIL: runnable/template1.d -g -O2 -frelease execution test
> FAIL: runnable/template1.d -g -O2 -frelease -shared-libphobos execution
> test
> FAIL: runnable/template1.d -g -O2 -shared-libphobos execution test
> FAIL: runnable/template1.d -g -frelease execution test
> FAIL: runnable/template1.d -g -frelease -shared-libphobos execution test
> FAIL: runnable/template1.d -g -shared-libphobos execution test
> FAIL: runnable/template1.d -shared-libphobos execution test
>
This is caused by misalignment of long. Will send a patch for this.
> FAIL: libphobos.unittests/phobos/shared/std.typecons
>
std.typecons failed for same reason as runnable/template1.d
More information about the Gcc-bugs
mailing list