From baca788631cfc07ca46ebffc538ff49e51a800b0 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sat, 26 Apr 2008 11:01:15 +0000 Subject: [PATCH] Fix an assertion We were checking that a pointer was correctly tagged, but after we had untagged it. --- rts/Sanity.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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); } -- 1.7.10.4