Systools.hs: Improve detection of GCC and Clang
authorErik de Castro Lopo <erikd@mega-nerd.com>
Sat, 17 Oct 2015 08:33:38 +0000 (19:33 +1100)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Mon, 19 Oct 2015 19:48:55 +0000 (06:48 +1100)
Test Plan: Build on Debian using `--with-gcc=clang`

Reviewers: austin, bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1336

GHC Trac Issues: #10981

compiler/main/SysTools.hs
compiler/rename/RnNames.hs
compiler/typecheck/TcExpr.hs

index 1a1d4b5..108aba7 100644 (file)
@@ -881,10 +881,10 @@ getCompilerInfo' dflags = do
       -- Try to grab the info from the process output.
       parseCompilerInfo _stdo stde _exitc
         -- Regular GCC
-        | any ("gcc version" `isPrefixOf`) stde =
+        | any ("gcc version" `isInfixOf`) stde =
           return GCC
         -- Regular clang
-        | any ("clang version" `isPrefixOf`) stde =
+        | any ("clang version" `isInfixOf`) stde =
           return Clang
         -- XCode 5.1 clang
         | any ("Apple LLVM version 5.1" `isPrefixOf`) stde =
index c371d47..b517ce1 100644 (file)
@@ -959,7 +959,7 @@ trimAvail :: AvailInfo -> Name -> AvailInfo
 trimAvail (Avail n)         _ = Avail n
 trimAvail (AvailTC n ns fs) m = case find ((== m) . flSelector) fs of
     Just x  -> AvailTC n [] [x]
-    Nothing -> ASSERT (m `elem` ns) AvailTC n [m] []
+    Nothing -> ASSERT(m `elem` ns) AvailTC n [m] []
 
 -- | filters 'AvailInfo's by the given predicate
 filterAvails  :: (Name -> Bool) -> [AvailInfo] -> [AvailInfo]
index 1bdb193..e6cc5d1 100644 (file)
@@ -1451,7 +1451,7 @@ disambiguateRecordBinds record_expr rbnds res_ty
 
     lookupParent :: GlobalRdrElt -> RnM (TyCon, GlobalRdrElt)
     lookupParent gre = do { id <- tcLookupId (gre_name gre)
-                          ; ASSERT (isRecordSelector id)
+                          ; ASSERT(isRecordSelector id)
                             return (recordSelectorTyCon id, gre) }
 
     -- Make all the fields unambiguous by choosing the given parent.