From: simonmar Date: Wed, 16 May 2001 12:49:59 +0000 (+0000) Subject: [project @ 2001-05-16 12:49:59 by simonmar] X-Git-Tag: Approximately_9120_patches~1944 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=5cf73eab6ec5df0abe330e107cbe969d41e38d30;p=ghc-hetmet.git [project @ 2001-05-16 12:49:59 by simonmar] 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.) --- diff --git a/ghc/compiler/basicTypes/MkId.lhs b/ghc/compiler/basicTypes/MkId.lhs index c2809e3..dae32df 100644 --- a/ghc/compiler/basicTypes/MkId.lhs +++ b/ghc/compiler/basicTypes/MkId.lhs @@ -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