ghc has a stack space leak when prints warnings
Found on a crash when ghc tried to print a warning in a huge assembly file.
I've simplified it to autogenerated C file with an error:
# generate 10 million lines file
# and put an error into the very end of file
$ { for i in `seq 1 $((10 * 1000 * 1000))`; do echo "// a comment number $i"; done; echo 'static int foo = ;'; } > a.c
$ LANG=C powerpc64le-unknown-linux-gnu-ghc -c a.c +RTS -K128M
stack overflow: use +RTS -K<size> to increase it
C compiler tried to output something like the following to stderr:
a.c:10000001:0: error:
error: expected expression before ';' token
static int foo = ;
GHC finds 'a.c:10000001' location and tries to pretty-print the line. We get a space leak somewhere.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |