From 75ebc06a512a374eebb562ce4190bef136e2c1d6 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Mon, 25 Jun 2007 15:26:16 +0000 Subject: [PATCH] Clamp -O flag to beween 0 and 2 Fixes Trac #1272 --- compiler/main/DynFlags.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index b992228..7b06a48 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -561,13 +561,14 @@ data Option updOptLevel :: Int -> DynFlags -> DynFlags -- Set dynflags appropriate to the optimisation level updOptLevel n dfs - = dfs2{ optLevel = n } + = dfs2{ optLevel = final_n } where + final_n = max 0 (min 2 n) -- Clamp to 0 <= n <= 2 dfs1 = foldr (flip dopt_unset) dfs remove_dopts dfs2 = foldr (flip dopt_set) dfs1 extra_dopts - extra_dopts = [ f | (ns,f) <- optLevelFlags, n `elem` ns ] - remove_dopts = [ f | (ns,f) <- optLevelFlags, n `notElem` ns ] + extra_dopts = [ f | (ns,f) <- optLevelFlags, final_n `elem` ns ] + remove_dopts = [ f | (ns,f) <- optLevelFlags, final_n `notElem` ns ] optLevelFlags :: [([Int], DynFlag)] optLevelFlags -- 1.7.10.4