From: Ian Lynagh Date: Sat, 26 Apr 2008 11:01:15 +0000 (+0000) Subject: Fix an assertion X-Git-Tag: 2008-05-28~42 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=baca788631cfc07ca46ebffc538ff49e51a800b0 Fix an assertion We were checking that a pointer was correctly tagged, but after we had untagged it. --- diff --git a/rts/Sanity.c b/rts/Sanity.c index 25a76c0..c9a0772 100644 --- a/rts/Sanity.c +++ b/rts/Sanity.c @@ -204,12 +204,13 @@ checkStackChunk( StgPtr sp, StgPtr stack_end ) } static void -checkPAP (StgClosure *fun, StgClosure** payload, StgWord n_args) +checkPAP (StgClosure *tagged_fun, StgClosure** payload, StgWord n_args) { + StgClosure *fun; StgClosure *p; StgFunInfoTable *fun_info; - fun = UNTAG_CLOSURE(fun); + fun = UNTAG_CLOSURE(tagged_fun); ASSERT(LOOKS_LIKE_CLOSURE_PTR(fun)); fun_info = get_fun_itbl(fun); @@ -236,8 +237,8 @@ checkPAP (StgClosure *fun, StgClosure** payload, StgWord n_args) break; } - ASSERT(fun_info->f.arity > TAG_MASK ? GET_CLOSURE_TAG(fun) == 1 - : GET_CLOSURE_TAG(fun) == fun_info->f.arity); + ASSERT(fun_info->f.arity > TAG_MASK ? GET_CLOSURE_TAG(tagged_fun) == 1 + : GET_CLOSURE_TAG(tagged_fun) == fun_info->f.arity); }