summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimonpj <unknown>1999-01-07 12:47:35 +0000
committersimonpj <unknown>1999-01-07 12:47:35 +0000
commit6c43076c1303c7501f1b3c3f4db63df6cd6702ff (patch)
tree5bd357c1f4706b2cc9baa5bd506dbdda74c6b51f
parent033f9d00fe94100cd9ad89c53df8b5a28cf986a5 (diff)
downloadhaskell-6c43076c1303c7501f1b3c3f4db63df6cd6702ff.tar.gz
[project @ 1999-01-07 12:47:34 by simonpj]
Add debug macro WARN
-rw-r--r--ghc/compiler/HsVersions.h2
-rw-r--r--ghc/compiler/utils/Outputable.lhs8
2 files changed, 10 insertions, 0 deletions
diff --git a/ghc/compiler/HsVersions.h b/ghc/compiler/HsVersions.h
index cd5c2207b5..c5663b12dc 100644
--- a/ghc/compiler/HsVersions.h
+++ b/ghc/compiler/HsVersions.h
@@ -15,9 +15,11 @@ you will screw up the layout where they are used in case expressions!
#ifdef DEBUG
#define ASSERT(e) if (not (e)) then (assertPanic __FILE__ __LINE__) else
#define ASSERT2(e,msg) if (not (e)) then (assertPprPanic __FILE__ __LINE__ (msg)) else
+#define WARN( e, msg ) (warnPprTrace (e) __FILE__ __LINE__ (msg))
#else
#define ASSERT(e)
#define ASSERT2(e,msg)
+#define WARN(e,msg)
#endif
#if __STDC__
diff --git a/ghc/compiler/utils/Outputable.lhs b/ghc/compiler/utils/Outputable.lhs
index 0e55176aa2..15a2acf83a 100644
--- a/ghc/compiler/utils/Outputable.lhs
+++ b/ghc/compiler/utils/Outputable.lhs
@@ -402,4 +402,12 @@ assertPprPanic file line msg
text file,
text "line", int line],
msg]
+
+warnPprTrace :: Bool -> String -> Int -> SDoc -> a -> a
+warnPprTrace False file line msg x = x
+warnPprTrace True file line msg x
+ = trace (show (doc PprDebug)) x
+ where
+ doc = sep [hsep [text "WARNING: file", text file, text "line", int line],
+ msg]
\end{code}