ALWAYS warn of incomplete pattern matches.
authorNorman Ramsey <nr@cs.tufts.edu>
Fri, 30 Apr 2010 21:06:15 +0000 (17:06 -0400)
committerNorman Ramsey <nr@cs.tufts.edu>
Fri, 30 Apr 2010 21:06:15 +0000 (17:06 -0400)
src/Compiler/Hoopl/Dataflow.hs
src/Compiler/Hoopl/DataflowFold.hs
src/Compiler/Hoopl/GraphUtil.hs

index 8bf2ec7..66133ac 100644 (file)
@@ -1,5 +1,4 @@
 {-# LANGUAGE RankNTypes, ScopedTypeVariables, GADTs, EmptyDataDecls, PatternGuards, TypeFamilies, MultiParamTypeClasses #-}
-{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-} -- bug in GHC
 
 {- Notes about the genesis of Hoopl7
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -211,6 +210,7 @@ arfGraph pass entries = graph
                 -> Fact e f -> m (RG f n e C, Fact C f)
              c NothingC (JustO entry)   = block entry `cat` body (successors entry) bdy
              c (JustC entries) NothingO = body entries bdy
+             c _ _ = error "bogus GADT pattern match failure"
 
     -- Lift from nodes to blocks
     block (BFirst  n)  = node n
@@ -351,6 +351,7 @@ arbGraph pass entries = graph
                 -> Fact C f -> m (RG f n e C, Fact e f)
              c NothingC (JustO entry)   = block entry `cat` body (successors entry) bdy
              c (JustC entries) NothingO = body entries bdy
+             c _ _ = error "bogus GADT pattern match failure"
 
     -- Lift from nodes to blocks
     block (BFirst  n)  = node n
index 0a43317..3fdf1a9 100644 (file)
@@ -1,5 +1,4 @@
 {-# LANGUAGE RankNTypes, ScopedTypeVariables, GADTs, EmptyDataDecls, PatternGuards, TypeFamilies, MultiParamTypeClasses #-}
-{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-} -- bug in GHC
 
 {- Notes about the genesis of Hoopl7
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
index 729fb50..3dd6a58 100644 (file)
@@ -1,5 +1,4 @@
 {-# LANGUAGE GADTs, RankNTypes, ScopedTypeVariables #-}
-{-# OPTIONS_GHC -fno-warn-incomplete-patterns #-} -- bug in GHC
 
 -- N.B. addBasicBlocks won't work on OO without a Node (branch/label) constraint
 
@@ -39,6 +38,7 @@ splice bcat = sp
         sp (GMany e1 (Body b1) NothingO) (GMany NothingO (Body b2) x2)
            = GMany e1 (Body $ unionLabelMap b1 b2) x2
 
+        sp _ _ = error "bogus GADT match failure"
 
 gSplice :: Edges n => Graph n e a -> Graph n a x -> Graph n e x
 gSplice = splice cat