summaryrefslogtreecommitdiff
path: root/ghc/driver
diff options
context:
space:
mode:
authorsimonmar <unknown>2005-06-03 10:08:55 +0000
committersimonmar <unknown>2005-06-03 10:08:55 +0000
commit71bc4a3a0c23c3dd21e770c3da1f2cff6174c6de (patch)
tree8eb61d911135283d67d94bbb3d30f0654f5e455a /ghc/driver
parentc71357f94f7d23c25d2a28ae6ab23f885652000c (diff)
downloadhaskell-71bc4a3a0c23c3dd21e770c3da1f2cff6174c6de.tar.gz
[project @ 2005-06-03 10:08:55 by simonmar]
Check for reserved stack space blown.
Diffstat (limited to 'ghc/driver')
-rw-r--r--ghc/driver/mangler/ghc-asm.lprl6
1 files changed, 6 insertions, 0 deletions
diff --git a/ghc/driver/mangler/ghc-asm.lprl b/ghc/driver/mangler/ghc-asm.lprl
index 935b2a45d5..493c6e35d5 100644
--- a/ghc/driver/mangler/ghc-asm.lprl
+++ b/ghc/driver/mangler/ghc-asm.lprl
@@ -778,6 +778,12 @@ sub mangle_asm {
$r =~ s/^\s*\n//;
if ($TargetPlatform =~ /^i386-/) {
+ if ($p =~ /^\tsubl\s+\$(\d+),\s*\%esp\n/) {
+ if ($1 >= 8192) {
+ die "Error: reserved stack space exceeded!\n Possible workarounds: compile with -fasm, or try another version of gcc.\n"
+ }
+ }
+
$p =~ s/^\tpushl\s+\%edi\n//;
$p =~ s/^\tpushl\s+\%esi\n//;
$p =~ s/^\tpushl\s+\%ebx\n//;