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
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