-----------------------------------------------------------------------------
--- $Id: DriverFlags.hs,v 1.3 2000/10/11 16:26:04 simonmar Exp $
+-- $Id: DriverFlags.hs,v 1.6 2000/10/18 09:40:18 simonmar Exp $
--
-- Driver flags
--
------- Specific phases --------------------------------------------
, ( "pgmL" , HasArg (writeIORef pgm_L) )
, ( "pgmP" , HasArg (writeIORef pgm_P) )
- , ( "pgmC" , HasArg (writeIORef pgm_C) )
, ( "pgmc" , HasArg (writeIORef pgm_c) )
, ( "pgmm" , HasArg (writeIORef pgm_m) )
, ( "pgms" , HasArg (writeIORef pgm_s) )
-----------------------------------------------------------------------------
-- parse the dynamic arguments
-GLOBAL_VAR(v_DynFlags, error "no dynFlags", DynFlags)
+GLOBAL_VAR(v_InitDynFlags, error "no InitDynFlags", DynFlags)
+GLOBAL_VAR(v_DynFlags, error "no DynFlags", DynFlags)
setDynFlag f = do
dfs <- readIORef v_DynFlags
, ( "DoStgLinting", NoArg (setDynFlag Opt_DoStgLinting) )
, ( "DoUSPLinting", NoArg (setDynFlag Opt_DoUSPLinting) )
+ ------ Warnings ----------------------------------------------------
+
+ , ( "-fwarn-duplicate-exports", NoArg (setDynFlag Opt_WarnDuplicateExports) )
+ , ( "-fwarn-hi-shadowing", NoArg (setDynFlag Opt_WarnHiShadows) )
+ , ( "-fwarn-incomplete-patterns", NoArg (setDynFlag Opt_WarnIncompletePatterns) )
+ , ( "-fwarn-missing-fields", NoArg (setDynFlag Opt_WarnMissingFields) )
+ , ( "-fwarn-missing-methods", NoArg (setDynFlag Opt_WarnMissingMethods))
+ , ( "-fwarn-missing-signatures", NoArg (setDynFlag Opt_WarnMissingSigs) )
+ , ( "-fwarn-name-shadowing", NoArg (setDynFlag Opt_WarnNameShadowin) )
+ , ( "-fwarn-overlapping-patterns", NoArg (setDynFlag Opt_WarnOverlappingPatterns )) )
+ , ( "-fwarn-simple-patterns", NoArg (setDynFlag Opt_WarnSimplePatterns))
+ , ( "-fwarn-type-defaults", NoArg (setDynFlag Opt_WarnTypeDefaults) )
+ , ( "-fwarn-unused-binds", NoArg (setDynFlag Opt_WarnUnusedBinds) )
+ , ( "-fwarn-unused-imports", NoArg (setDynFlag Opt_WarnUnusedImports) )
+ , ( "-fwarn-unused-matches", NoArg (setDynFlag Opt_WarnUnusedMatches) )
+ , ( "-fwarn-deprecations", NoArg (setDynFlag Opt_WarnDeprecations) )
+
------ Machine dependant (-m<blah>) stuff ---------------------------
, ( "monly-2-regs", NoArg (updateState (\s -> s{stolen_x86_regs = 2}) ))
, ( "fallow-undecidable-instances",
NoArg (setDynFlag Opt_AllowUndecidableInstances) )
+
+ , ( "fgenerics", NoArg (setDynFlag Opt_Generics) )
+
+ , ( "freport-compile", NoArg (setDynFlag Opt_ReportCompile) )
]
-----------------------------------------------------------------------------
static <- (do s <- readIORef static; if s then return "-static" else return "")
- l <- readIORef hsc_lang
- let lang = case l of
- HscC -> "-olang=C"
- HscAsm -> "-olang=asm"
- HscJava -> "-olang=java"
-
-- get hi-file suffix
hisuf <- readIORef hi_suf
import_dirs <- readIORef import_paths
package_import_dirs <- getPackageImportPath
- let hi_map = "-himap=" ++
- makeHiMap import_dirs hisuf
- package_import_dirs package_hisuf
- split_marker
-
- hi_map_sep = "-himap-sep=" ++ [split_marker]
-
return
(
filtered_opts
- ++ [ hi_vers, static, verb, lang, hi_map, hi_map_sep ]
+ ++ [ hi_vers, static, verb ]
)
-
-makeHiMap
- (import_dirs :: [String])
- (hi_suffix :: String)
- (package_import_dirs :: [String])
- (package_hi_suffix :: String)
- (split_marker :: Char)
- = foldr (add_dir hi_suffix)
- (foldr (add_dir package_hi_suffix) "" package_import_dirs)
- import_dirs
- where
- add_dir hisuf dir str = dir ++ "%." ++ hisuf ++ split_marker : str