summary refs log tree commit diff
path: root/pkgs/development/compilers/ghc/fix-7.6.3-clang.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/ghc/fix-7.6.3-clang.patch')
-rw-r--r--pkgs/development/compilers/ghc/fix-7.6.3-clang.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghc/fix-7.6.3-clang.patch b/pkgs/development/compilers/ghc/fix-7.6.3-clang.patch
new file mode 100644
index 000000000000..e83fd252d72c
--- /dev/null
+++ b/pkgs/development/compilers/ghc/fix-7.6.3-clang.patch
@@ -0,0 +1,71 @@
+diff --git a/compiler/codeGen/CgInfoTbls.hs b/compiler/codeGen/CgInfoTbls.hs
+index 7cdb1b6..e953507 100644
+--- a/compiler/codeGen/CgInfoTbls.hs
++++ b/compiler/codeGen/CgInfoTbls.hs
+@@ -157,9 +157,7 @@ mkStackLayout = do
+                     [(offset - frame_sp - retAddrSizeW, b)
+                     | (offset, b) <- binds]
+ 
+-  WARN( not (all (\bind -> fst bind >= 0) rel_binds),
+-        ppr binds $$ ppr rel_binds $$
+-        ppr frame_size $$ ppr real_sp $$ ppr frame_sp )
++  WARN( not (all (\bind -> fst bind >= 0) rel_binds), ppr binds $$ ppr rel_binds $$ ppr frame_size $$ ppr real_sp $$ ppr frame_sp )
+     return $ stack_layout rel_binds frame_size
+ 
+ stack_layout :: [(VirtualSpOffset, CgIdInfo)]
+diff --git a/compiler/main/GhcMake.hs b/compiler/main/GhcMake.hs
+index f563cd9..4ac7812 100644
+--- a/compiler/main/GhcMake.hs
++++ b/compiler/main/GhcMake.hs
+@@ -331,8 +331,7 @@ load how_much = do
+           liftIO $ intermediateCleanTempFiles dflags mods_to_keep hsc_env1
+ 
+           -- there should be no Nothings where linkables should be, now
+-          ASSERT(all (isJust.hm_linkable) 
+-                    (eltsUFM (hsc_HPT hsc_env))) do
++          ASSERT(all (isJust.hm_linkable) (eltsUFM (hsc_HPT hsc_env))) do
+     
+           -- Link everything together
+           linkresult <- liftIO $ link (ghcLink dflags) dflags False hpt4
+diff --git a/compiler/simplCore/SimplUtils.lhs b/compiler/simplCore/SimplUtils.lhs
+index 87aefba..479d2ef 100644
+--- a/compiler/simplCore/SimplUtils.lhs
++++ b/compiler/simplCore/SimplUtils.lhs
+@@ -415,8 +415,7 @@ mkArgInfo fun rules n_val_args call_cont
+ 		   else
+ 			map isStrictDmd demands ++ vanilla_stricts
+ 	       | otherwise
+-	       -> WARN( True, text "More demands than arity" <+> ppr fun <+> ppr (idArity fun) 
+-				<+> ppr n_val_args <+> ppr demands ) 
++	       -> WARN( True, text "More demands than arity" <+> ppr fun <+> ppr (idArity fun) <+> ppr n_val_args <+> ppr demands ) 
+ 		   vanilla_stricts	-- Not enough args, or no strictness
+ 
+     add_type_str :: Type -> [Bool] -> [Bool]
+diff --git a/compiler/simplCore/Simplify.lhs b/compiler/simplCore/Simplify.lhs
+index f2ed224..464fad6 100644
+--- a/compiler/simplCore/Simplify.lhs
++++ b/compiler/simplCore/Simplify.lhs
+@@ -2359,8 +2359,7 @@ mkDupableAlt env case_bndr (con, bndrs', rhs')
+ 		      	     rhs = mkConApp dc (map Type (tyConAppArgs scrut_ty)
+ 			     	   	        ++ varsToCoreExprs bndrs')
+ 
+-		      LitAlt {} -> WARN( True, ptext (sLit "mkDupableAlt")
+-		      	     	   	        <+> ppr case_bndr <+> ppr con )
++		      LitAlt {} -> WARN( True, ptext (sLit "mkDupableAlt") <+> ppr case_bndr <+> ppr con )
+ 			           case_bndr
+ 		      	   -- The case binder is alive but trivial, so why has 
+ 		      	   -- it not been substituted away?
+diff --git a/compiler/types/Coercion.lhs b/compiler/types/Coercion.lhs
+index 42e54ba..9b420ae 100644
+--- a/compiler/types/Coercion.lhs
++++ b/compiler/types/Coercion.lhs
+@@ -498,8 +498,7 @@ splitForAllCo_maybe _                = Nothing
+ coVarKind :: CoVar -> (Type,Type) 
+ coVarKind cv
+  | Just (tc, [_kind,ty1,ty2]) <- splitTyConApp_maybe (varType cv)
+- = ASSERT (tc `hasKey` eqPrimTyConKey)
+-   (ty1,ty2)
++ = ASSERT (tc `hasKey` eqPrimTyConKey) (ty1,ty2)
+  | otherwise = panic "coVarKind, non coercion variable"
+ 
+ -- | Makes a coercion type from two types: the types whose equality