summaryrefslogtreecommitdiff
path: root/testsuite/tests/plugins/LinkerTicklingPlugin.hs
blob: 7ee63cd7a0a475862e8330f123bbcf7f7b0f9ca6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
module LinkerTicklingPlugin where

import GhcPlugins
import StaticFlags

plugin :: Plugin
plugin = defaultPlugin {
        installCoreToDos = install
    }

-- This tests whether plugins are linking against the *running* GHC
-- or a new instance of it. If it is a new instance the staticFlags
-- won't have been initialised, so we'll get a GHC panic here:
install :: [CommandLineOption] -> [CoreToDo] -> CoreM [CoreToDo]
install _options todos = reinitializeGlobals >> (length staticFlags `seq` return todos)
  --- XXX: remove reinitializeGlobals when we have fixed the linker
  -- problem (see comment with reinitializeGlobals in CoreMonad.hs)