[project @ 2001-05-16 12:49:59 by simonmar]
authorsimonmar <unknown>
Wed, 16 May 2001 12:49:59 +0000 (12:49 +0000)
committersimonmar <unknown>
Wed, 16 May 2001 12:49:59 +0000 (12:49 +0000)
Fix a bug in the unfolding for a record selector which caused problems
with -funbox-strict-fields.

MERGE with 5.00 (after testing etc. etc.)

ghc/compiler/basicTypes/MkId.lhs

index c2809e3..dae32df 100644 (file)
@@ -456,9 +456,12 @@ mkRecordSelId tycon field_label unpack_id unpackUtf8_id
                    body              = mkVarApps (mkVarApps (Var the_arg_id) field_tyvars) field_dict_ids
                    strict_marks      = dataConStrictMarks data_con
                    (expr, real_args) = rebuildConArgs data_con arg_ids strict_marks body
-                                                      (length arg_ids + 1)
+                                                      unpack_base
        where
             arg_ids = mkTemplateLocalsNum field_base (dataConInstOrigArgTys data_con tyvar_tys)
+
+           unpack_base = field_base + length arg_ids
+
                                -- arity+1 avoids all shadowing
            maybe_the_arg_id  = assocMaybe (field_lbls `zip` arg_ids) field_label
            field_lbls        = dataConFieldLabels data_con