checkStack sanity check fails
checkStackChunk() currently has a commented-out assertion:
void
checkStackChunk( StgPtr sp, StgPtr stack_end )
{
StgPtr p;
p = sp;
while (p < stack_end) {
p += checkStackFrame( p );
}
// ASSERT( p == stack_end ); -- HWL
}
I realized a while ago that if I enable it, it fails in some cases, so I asked Simon Marlow about this. Quoting:
I don't know, but blame says it was disabled by Hans-Wolfgang Loidl as part of the GUM merge 18 years ago. I suggest just enabling it and debug whatever goes wrong.
This ticket is to enable the assertion and fix bugs.
To reproduce, run the test suite:
$ make EXTRA_HC_OPTS='-debug -rtsopts' WAY=sanity
Tests that trigger the assertion:
- annrun01
- T10508_api
- dynCompileExpr
Tried with GHC HEAD
Trac metadata
Trac field | Value |
---|---|
Version | |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |