sheaf pushed to branch wip/T23210 at Glasgow Haskell Compiler / GHC
Commits:
-
78bb735d
by Ben Gamari at 2025-09-16T12:56:15+02:00
-
521b9264
by Ben Gamari at 2025-09-16T12:56:15+02:00
3 changed files:
Changes:
... | ... | @@ -2331,11 +2331,12 @@ pushAtom d p (StgVarArg var) |
2331 | 2331 | -- PUSH_G doesn't tag constructors. So we use PACK here
|
2332 | 2332 | -- if we are dealing with nullary constructor.
|
2333 | 2333 | case isDataConWorkId_maybe var of
|
2334 | - Just con -> do
|
|
2335 | - massert (isNullaryRepDataCon con)
|
|
2336 | - return (unitOL (PACK con 0), szb)
|
|
2334 | + Just con
|
|
2335 | + -- See Note [LFInfo of DataCon workers and wrappers] in GHC.Types.Id.Make.
|
|
2336 | + | isNullaryRepDataCon con ->
|
|
2337 | + return (unitOL (PACK con 0), szb)
|
|
2337 | 2338 | |
2338 | - Nothing
|
|
2339 | + _ ->
|
|
2339 | 2340 | -- see Note [Generating code for top-level string literal bindings]
|
2340 | 2341 | | idType var `eqType` addrPrimTy ->
|
2341 | 2342 | return (unitOL (PUSH_ADDR (getName var)), szb)
|
... | ... | @@ -2227,7 +2227,6 @@ run_BCO: |
2227 | 2227 | // n_nptrs=1, n_ptrs=0.
|
2228 | 2228 | ASSERT(n_ptrs + n_nptrs == n_words || (n_nptrs == 1 && n_ptrs == 0));
|
2229 | 2229 | ASSERT(n_ptrs + n_nptrs > 0);
|
2230 | - //ASSERT(n_words > 0); // We shouldn't ever need to allocate nullary constructors
|
|
2231 | 2230 | for (W_ i = 0; i < n_words; i++) {
|
2232 | 2231 | con->payload[i] = (StgClosure*)ReadSpW(i);
|
2233 | 2232 | }
|
1 | 1 | test('T23146', normal, compile_and_run, [''])
|
2 | 2 | test('T23146_lifted', normal, compile_and_run, [''])
|
3 | -test('T23146_liftedeq', expect_broken_for(23060, ghci_ways), compile_and_run, [''])
|
|
3 | +test('T23146_liftedeq', normal, compile_and_run, [''])
|
|
4 | 4 | test('T23146_lifted_unlifted', normal, compile_and_run, ['']) |