summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/specialise/Specialise.hs1
-rw-r--r--testsuite/mk/test.mk4
2 files changed, 5 insertions, 0 deletions
diff --git a/compiler/specialise/Specialise.hs b/compiler/specialise/Specialise.hs
index b68191ffeb..e3501dfd38 100644
--- a/compiler/specialise/Specialise.hs
+++ b/compiler/specialise/Specialise.hs
@@ -738,6 +738,7 @@ warnMissingSpecs :: DynFlags -> [Id] -> Bool
-- See Note [Warning about missed specialisations]
warnMissingSpecs dflags callers
| wopt Opt_WarnAllMissedSpecs dflags = True
+ | not (wopt Opt_WarnMissedSpecs dflags) = False
| null callers = False
| otherwise = all has_inline_prag callers
where
diff --git a/testsuite/mk/test.mk b/testsuite/mk/test.mk
index 7a4e4f1686..920d63433d 100644
--- a/testsuite/mk/test.mk
+++ b/testsuite/mk/test.mk
@@ -44,6 +44,10 @@ TEST_HC_OPTS = -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-user-
#
TEST_HC_OPTS += -fno-warn-tabs
+# Don't warn about missing specialisations. They can only occur with `-O`, but
+# we want tests to produce the same output for all test ways.
+TEST_HC_OPTS += -fno-warn-missed-specialisations
+
RUNTEST_OPTS =
ifeq "$(filter $(TargetOS_CPP), cygwin32 mingw32)" ""