summaryrefslogtreecommitdiff
path: root/compiler/main/StaticFlags.hs
diff options
context:
space:
mode:
authorBen Lippmeier <benl@ouroborus.net>2010-12-10 06:01:54 +0000
committerBen Lippmeier <benl@ouroborus.net>2010-12-10 06:01:54 +0000
commit463de5fd0a6408c416378f62c94dd0f6db10427f (patch)
treebf2d5b0c7cadf1c02d1b1e7c0b0668f3845f5712 /compiler/main/StaticFlags.hs
parent4caf239d368ef26c8d5ae7835355123b77f9a035 (diff)
downloadhaskell-463de5fd0a6408c416378f62c94dd0f6db10427f.tar.gz
Default the value of -dppr-cols when the static flags aren't initialised yet
If GHC's command line options are bad then the options parser uses the pretty printer before the -dppr-cols flag has been read.
Diffstat (limited to 'compiler/main/StaticFlags.hs')
-rw-r--r--compiler/main/StaticFlags.hs11
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/main/StaticFlags.hs b/compiler/main/StaticFlags.hs
index e03d6810ca..96f8b4b715 100644
--- a/compiler/main/StaticFlags.hs
+++ b/compiler/main/StaticFlags.hs
@@ -237,8 +237,17 @@ opt_PprCaseAsLet :: Bool
opt_PprCaseAsLet = lookUp (fsLit "-dppr-case-as-let")
-- | Set the maximum width of the dumps
+-- If GHC's command line options are bad then the options parser uses the
+-- pretty printer display the error message. In this case the staticFlags
+-- won't be initialized yet, so we must check for this case explicitly
+-- and return the default value.
opt_PprCols :: Int
-opt_PprCols = lookup_def_int "-dppr-cols" 100
+opt_PprCols
+ = unsafePerformIO
+ $ do ready <- readIORef v_opt_C_ready
+ if (not ready)
+ then return 100
+ else return $ lookup_def_int "-dppr-cols" 100
opt_PprStyle_Debug :: Bool