It seems to be a BUG of ldc2 compiler
Kai Nacke
kai at redstar.de
Wed Nov 13 11:34:31 PST 2013
Hi tae!
On Wednesday, 13 November 2013 at 03:42:27 UTC, tae hoo wrote:
> <test.d>
> module test;
> void poo()
> {
> wchar[4096] buffW;
> }
>
> ldc2 --output-o -c -IC:/LDC/ldc/runtime/druntime/src
> -IC:/LDC/ldc/runtime/druntime/src/gc test.d -oftest.obj -w -d
> -O0 -release -IC:/LDC/ldc/runtime/phobos
>
> if you compile the above test.d, same error message generated
>>> Unknown frame setup opcode!
>>> UNREACHABLE executed at
>>> C:\LDC\llvm\lib\Target\X86\X86MCInstLower.cpp:855!
>
>
> But, if reduce the stack variable size to below 2000,
> error message not generated.
>
> <test.d>
> module test;
> void poo()
> {
> wchar[2000] buffW;
> }
Yes, you are right. It is a bug! The sub instruction after a call
to __chkstk was not regarded as valid. I already updated the
patch. Please retry.
And thanks for the report. :-)
> It seems to be a BUG of ldc2 compiler not stack alingment
> problem.
A wouldn't call a problem caused by a LLVM patch a bug of ldc2,
even if the author of the patch happens to be a maintainer of the
ldc project. ;-)
Regards,
Kai
More information about the digitalmars-d-ldc
mailing list