summaryrefslogtreecommitdiff
path: root/compiler/main/SysTools/Tasks.hs
diff options
context:
space:
mode:
authorErik de Castro Lopo <erikd@mega-nerd.com>2019-06-22 10:13:51 +1000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-06-24 01:11:46 -0400
commit71aca77c780dad8496054a06a7fe65704a13a742 (patch)
tree9c809e4619fecd7662b56cc9ce07720ea669c12c /compiler/main/SysTools/Tasks.hs
parent9bbcc3be51180dcefde0c89daf8ad6f69c680b40 (diff)
downloadhaskell-71aca77c780dad8496054a06a7fe65704a13a742.tar.gz
Fixes for LLVM 7
LLVM version numberinf changed recently. Previously, releases were numbered 4.0, 5.0 and 6.0 but with version 7, they dropped the redundant ".0". Fix requires for Llvm detection and some code.
Diffstat (limited to 'compiler/main/SysTools/Tasks.hs')
-rw-r--r--compiler/main/SysTools/Tasks.hs10
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/main/SysTools/Tasks.hs b/compiler/main/SysTools/Tasks.hs
index 10e1102304..0310bd8eb2 100644
--- a/compiler/main/SysTools/Tasks.hs
+++ b/compiler/main/SysTools/Tasks.hs
@@ -23,7 +23,7 @@ import System.IO
import System.Process
import GhcPrelude
-import LlvmCodeGen.Base (llvmVersionStr, supportedLlvmVersion)
+import LlvmCodeGen.Base (LlvmVersion (..), llvmVersionStr, supportedLlvmVersion)
import SysTools.Process
import SysTools.Info
@@ -200,7 +200,7 @@ runClang dflags args = do
)
-- | Figure out which version of LLVM we are running this session
-figureLlvmVersion :: DynFlags -> IO (Maybe (Int, Int))
+figureLlvmVersion :: DynFlags -> IO (Maybe LlvmVersion)
figureLlvmVersion dflags = do
let (pgm,opts) = pgm_lc dflags
args = filter notNull (map showOpt opts)
@@ -222,8 +222,10 @@ figureLlvmVersion dflags = do
vline <- dropWhile (not . isDigit) `fmap` hGetLine pout
v <- case span (/= '.') vline of
("",_) -> fail "no digits!"
- (x,y) -> return (read x
- , read $ takeWhile isDigit $ drop 1 y)
+ (x,"") -> return $ LlvmVersion (read x)
+ (x,y) -> return $ LlvmVersionOld
+ (read x)
+ (read $ takeWhile isDigit $ drop 1 y)
hClose pin
hClose pout