From 475dd93efa5158a0f9516f6819a24edfc30c1a76 Mon Sep 17 00:00:00 2001
From: David Terei <code@davidterei.com>
Date: Wed, 12 Nov 2014 16:11:39 -0800
Subject: [PATCH] Add `--fwarn-trustworthy-safe` to `-Wall`

Update submodule haskell2010, haskell98, hoop, hpc and stm to fix new
warnings.
---
 compiler/main/DynFlags.hs                              |  3 ++-
 libraries/haskell2010                                  |  2 +-
 libraries/haskell98                                    |  2 +-
 libraries/hoopl                                        |  2 +-
 libraries/hpc                                          |  2 +-
 libraries/stm                                          |  2 +-
 mk/validate-settings.mk                                |  7 +++++++
 .../tests/safeHaskell/safeInfered/TrustworthySafe03.hs | 10 ++++++++++
 .../safeHaskell/safeInfered/TrustworthySafe03.stderr   |  3 +++
 testsuite/tests/safeHaskell/safeInfered/all.T          |  1 +
 10 files changed, 28 insertions(+), 6 deletions(-)
 create mode 100644 testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs
 create mode 100644 testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr

diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 043174f3b025..70fc6d390d3f 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -3154,7 +3154,8 @@ minusWallOpts
         Opt_WarnMissingSigs,
         Opt_WarnHiShadows,
         Opt_WarnOrphans,
-        Opt_WarnUnusedDoBind
+        Opt_WarnUnusedDoBind,
+        Opt_WarnTrustworthySafe
       ]
 
 enableGlasgowExts :: DynP ()
diff --git a/libraries/haskell2010 b/libraries/haskell2010
index 425df1d9ea7a..a21abff3e385 160000
--- a/libraries/haskell2010
+++ b/libraries/haskell2010
@@ -1 +1 @@
-Subproject commit 425df1d9ea7adcf823bbb5426528bd80eb2b820e
+Subproject commit a21abff3e385a85e1353aa720516e148865710a1
diff --git a/libraries/haskell98 b/libraries/haskell98
index 401283a98a81..cf064d954c51 160000
--- a/libraries/haskell98
+++ b/libraries/haskell98
@@ -1 +1 @@
-Subproject commit 401283a98a818f66f856939f939562de5c4a2b47
+Subproject commit cf064d954c511a2edddb5a55a1984d57ce36c407
diff --git a/libraries/hoopl b/libraries/hoopl
index 7f06b16ba3a4..a90a3af92be4 160000
--- a/libraries/hoopl
+++ b/libraries/hoopl
@@ -1 +1 @@
-Subproject commit 7f06b16ba3a49c2c927fb06fe7dc89089dd7e29f
+Subproject commit a90a3af92be400af8912555bce21b041a1c48ad4
diff --git a/libraries/hpc b/libraries/hpc
index d430be4664aa..60e7bbfeea8b 160000
--- a/libraries/hpc
+++ b/libraries/hpc
@@ -1 +1 @@
-Subproject commit d430be4664aac337cd0e49dd6b69e818f21cde6b
+Subproject commit 60e7bbfeea8ba54688b8f432f0f337b275f06c58
diff --git a/libraries/stm b/libraries/stm
index 40fd6d88f75c..6b63e91b2b0b 160000
--- a/libraries/stm
+++ b/libraries/stm
@@ -1 +1 @@
-Subproject commit 40fd6d88f75c31b66419ab93f436225c9403846c
+Subproject commit 6b63e91b2b0b7d7b4bef654117da62c22cac34da
diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk
index 52aa6488935e..150aec3323e2 100644
--- a/mk/validate-settings.mk
+++ b/mk/validate-settings.mk
@@ -163,6 +163,13 @@ libraries/dph/dph-lifted-common-install_EXTRA_HC_OPTS += -Wwarn
 # We need to turn of deprecated warnings for SafeHaskell transition
 libraries/array_dist-install_EXTRA_HC_OPTS += -fno-warn-warnings-deprecations
 
+# Turn of trustworthy-safe warning
+libraries/base_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/ghc-prim_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/process_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/unix_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+
 # Temporarely disable inline rule shadowing warning
 libraries/bytestring_dist-install_EXTRA_HC_OPTS += -fno-warn-inline-rule-shadowing
 libraries/template-haskell_dist-install_EXTRA_HC_OPTS += -fno-warn-inline-rule-shadowing
diff --git a/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs
new file mode 100644
index 000000000000..12be9b174cda
--- /dev/null
+++ b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE Trustworthy #-}
+{-# OPTIONS_GHC -Wall #-}
+
+-- | This module is marked trustworthy but should be inferable as -XSafe.
+-- Warning enabled through `-W`.
+module TrustworthySafe03 where
+
+g :: Int
+g = 1
+
diff --git a/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr
new file mode 100644
index 000000000000..9505d06031d2
--- /dev/null
+++ b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr
@@ -0,0 +1,3 @@
+
+TrustworthySafe03.hs:1:14: Warning:
+    ‘TrustworthySafe03’ is marked as Trustworthy but has been inferred as safe!
diff --git a/testsuite/tests/safeHaskell/safeInfered/all.T b/testsuite/tests/safeHaskell/safeInfered/all.T
index 89062cd174d6..12e80a7fde69 100644
--- a/testsuite/tests/safeHaskell/safeInfered/all.T
+++ b/testsuite/tests/safeHaskell/safeInfered/all.T
@@ -76,6 +76,7 @@ test('Mixed03', normal, compile_fail, [''])
 # Trustworthy Safe modules
 test('TrustworthySafe01', normal, compile, [''])
 test('TrustworthySafe02', normal, compile, [''])
+test('TrustworthySafe03', normal, compile, [''])
 test('TrustworthySafe04', normal, compile, [''])
 
 # Check -fwarn-unsafe works
-- 
GitLab