[project @ 2003-01-23 11:22:50 by simonmar]
authorsimonmar <unknown>
Thu, 23 Jan 2003 11:22:50 +0000 (11:22 +0000)
committersimonmar <unknown>
Thu, 23 Jan 2003 11:22:50 +0000 (11:22 +0000)
A nullary constructor in an argument position should refer to the
constructor worker, not the wrapper.  In most cases they're the same,
but when using -funbox-strict-fields (or maybe a context on a data
type?) they can be different, leading to a crash.

MERGE TO STABLE

ghc/compiler/stgSyn/CoreToStg.lhs

index c7c029e..f6033c2 100644 (file)
@@ -538,7 +538,7 @@ coreToStgArgs (arg : args)  -- Non-type argument
        fvs = args_fvs `unionFVInfo` arg_fvs
        stg_arg = case arg' of
                       StgApp v []      -> StgVarArg v
-                      StgConApp con [] -> StgVarArg (dataConWrapId con)
+                      StgConApp con [] -> StgVarArg (dataConWorkId con)
                       StgLit lit       -> StgLitArg lit
                       _                -> pprPanic "coreToStgArgs" (ppr arg)
     in