[commit: ghc] master: dwarf: sync getIdFromTrivialExpr with exprIsTrivial (test break028 and others) (30fdf86)

git at git.haskell.org git at git.haskell.org
Tue Dec 23 14:54:02 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/30fdf86eec34711be07c6771b02a6fc81ac99ee2/ghc

>---------------------------------------------------------------

commit 30fdf86eec34711be07c6771b02a6fc81ac99ee2
Author: Sergei Trofimovich <siarheit at google.com>
Date:   Tue Dec 23 08:55:06 2014 -0600

    dwarf: sync getIdFromTrivialExpr with exprIsTrivial (test break028 and others)
    
    Summary:
    The bug manifests when built with
        EXTRA_HC_OPTS += -g
    
    +++ ./ghci.debugger/scripts/break028.run.stderr 2014-12-19 23:08:46.199876621 +0000
    @@ -0,0 +1,11 @@
    +ghc-stage2: panic! (the 'impossible' happened)
    +  (GHC version 7.9.20141219 for x86_64-unknown-linux):
    +       getIdFromTrivialExpr x_alJ
    +
    +Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
    +
    +
    +<interactive>:3:1: Not in scope: ‘g’
    +
    +<interactive>:3:3: Not in scope: data constructor ‘False’
    
    Signed-off-by: Sergei Trofimovich <siarheit at google.com>
    
    Reviewers: simonmar, austin, scpmw
    
    Reviewed By: scpmw
    
    Subscribers: carter, thomie
    
    Differential Revision: https://phabricator.haskell.org/D580


>---------------------------------------------------------------

30fdf86eec34711be07c6771b02a6fc81ac99ee2
 compiler/coreSyn/CoreUtils.hs | 1 +
 1 file changed, 1 insertion(+)

diff --git a/compiler/coreSyn/CoreUtils.hs b/compiler/coreSyn/CoreUtils.hs
index c520029..913dda3 100644
--- a/compiler/coreSyn/CoreUtils.hs
+++ b/compiler/coreSyn/CoreUtils.hs
@@ -663,6 +663,7 @@ getIdFromTrivialExpr :: CoreExpr -> Id
 getIdFromTrivialExpr e = go e
   where go (Var v) = v
         go (App f t) | not (isRuntimeArg t) = go f
+        go (Tick t e) | not (tickishIsCode t) = go e
         go (Cast e _) = go e
         go (Lam b e) | not (isRuntimeVar b) = go e
         go e = pprPanic "getIdFromTrivialExpr" (ppr e)



More information about the ghc-commits mailing list