Have Core linter accept programs using StaticPointers and -fhpc.
authorFacundo Domínguez <facundo.dominguez@tweag.io>
Wed, 22 Jun 2016 17:09:57 +0000 (14:09 -0300)
committerFacundo Domínguez <facundo.dominguez@tweag.io>
Thu, 23 Jun 2016 14:09:39 +0000 (11:09 -0300)
Summary:
This patch uses collectArgsTicks instead of collectArgs to test that
StaticPtr only occurs at the top of RHSs of top-level expressions.

Ticks introduced by -fhpc would interfere otherwise.

Test Plan: ./validate

Reviewers: thomie, austin, goldfire, bgamari, simonpj

Reviewed By: simonpj

Differential Revision: https://phabricator.haskell.org/D2355

GHC Trac Issues: #12207

compiler/coreSyn/CoreLint.hs
testsuite/tests/typecheck/should_compile/all.T

index 06e4583..e7acafc 100644 (file)
@@ -552,7 +552,7 @@ lintRhs :: CoreExpr -> LintM OutType
 -- but produce errors otherwise.
 lintRhs rhs
     | (binders0, rhs') <- collectTyBinders rhs
-    , (fun@(Var b), args) <- collectArgs rhs'
+    , (fun@(Var b), args, _) <- collectArgsTicks (const True) rhs'
     , Just con <- isDataConId_maybe b
     , dataConName con == staticPtrDataConName
     , length args == 5
index 0f222aa..7e3c33f 100644 (file)
@@ -421,8 +421,8 @@ test('T8474', normal, compile, [''])
 test('T8563', normal, compile, [''])
 test('T8565', normal, compile, [''])
 test('T8644', normal, compile, [''])
-test('TcStaticPointers01', expect_broken_for(12207, ['hpc']), compile, [''])
-test('TcStaticPointers02', expect_broken_for(12207, ['hpc']), compile, [''])
+test('TcStaticPointers01', normal, compile, [''])
+test('TcStaticPointers02', normal, compile, [''])
 test('T8762', normal, compile, [''])
 test('MutRec', normal, compile, [''])
 test('T8856', normal, compile, [''])