[GHC] #9512: T9329 fails test on unregisterised i386
GHC
ghc-devs at haskell.org
Sun Aug 24 19:59:09 UTC 2014
#9512: T9329 fails test on unregisterised i386
----------------------------+-------------------------------------------
Reporter: slyfox | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.3
Keywords: | Operating System: Unknown/Multiple
Architecture: x86 | Type of failure: None/Unknown
Difficulty: Unknown | Test Case: T9329
Blocked By: | Blocking:
Related Tickets: | Differential Revisions:
----------------------------+-------------------------------------------
ghc-HEAD '''./configure --enable-unregistersied''' on i386-linux fails as:
{{{
=====> T9329(normal) 118 of 4091 [0, 0, 0]
cd ./codeGen/should_compile && '/root/ghc/inplace/bin/ghc-stage2' -fforce-
recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-package-db
-rtsopts -optc-fno-builtin -fno-ghci-history -c T9329.cmm -no-hs-main
>T9329.comp.stderr 2>&1
Compile failed (status 256) errors were:
/tmp/ghc23160_0/ghc23160_2.hc: In function ‘foo’:
/tmp/ghc23160_0/ghc23160_2.hc:10:12:
error: ‘c0_info’ undeclared (first use in this function)
*Sp = (W_)&c0_info;
^
/tmp/ghc23160_0/ghc23160_2.hc:10:12:
note: each undeclared identifier is reported only once for each
function it appears in
}}}
The generated C code is:
{{{
/* GHC_PACKAGES
*/
#include "Stg.h"
FN_(foo) {
FB_
_c0:
if ((W_)(((W_)Sp-4) < (W_)SpLim)) goto _c2; else goto _c3;
_c2:
*Sp = (W_)&c0_info;
JMP_((W_)&stg_gc_noregs);
_c3:
R1.w = 0x0;
JMP_(*((P_)(*Sp)));
FE_
}
}}}
while on UNREG x86_64 test does not fail and generates the following C:
{{{
/* GHC_PACKAGES
*/
#include "Stg.h"
FN_(foo) {
FB_
_c0:
goto _c3;
_c3:
R1.w = 0x0;
JMP_(*((P_)(*Sp)));
FE_
}
}}}
Looks like there is no stack check at all.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9512>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list