Commit c4ea1371 authored by simonpj@microsoft.com's avatar simonpj@microsoft.com
Browse files

Fix nasty recompilation bug in MkIface.computeChangedOccs

	MERGE to 6.8 branch

In computeChangedOccs we look up the old version of a Name.
But a WiredIn Name doesn't have an old version, because WiredIn things
don't appear in interface files at all.

Result: ghc-6.9: panic! (the 'impossible' happened)
  (GHC version 6.9 for x86_64-unknown-linux):
	lookupVers1 base:GHC.Prim chr#{v}

This fixes the problem.  The patch should merge easily onto the branch.
parent ca919ae0
...@@ -708,6 +708,8 @@ computeChangedOccs ver_fn this_module old_usages eq_info ...@@ -708,6 +708,8 @@ computeChangedOccs ver_fn this_module old_usages eq_info
-- return True if an external name has changed -- return True if an external name has changed
name_changed :: Name -> Bool name_changed :: Name -> Bool
name_changed nm name_changed nm
| isWiredInName nm -- Wired-in things don't get into interface
= False -- files and hence don't get into the ver_fn
| Just ents <- lookupUFM usg_modmap (moduleName mod), | Just ents <- lookupUFM usg_modmap (moduleName mod),
Just v <- lookupUFM ents parent_occ Just v <- lookupUFM ents parent_occ
= v < new_version = v < new_version
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment