Commit 960a5e6a authored by Simon Marlow's avatar Simon Marlow
Browse files

Make it a fatal error to try to enter a PAP

This is just an assertion, in effect: we should never enter a PAP, but
for convenience we previously attached the PAP apply code to the PAP
info table.  The problem with this was that it makes it harder to track
down bugs that result in entering a PAP...
parent a9dc9658
......@@ -424,6 +424,7 @@ RTS_FUN(stg_ap_pppv_fast);
RTS_FUN(stg_ap_pppp_fast);
RTS_FUN(stg_ap_ppppp_fast);
RTS_FUN(stg_ap_pppppp_fast);
RTS_FUN(stg_PAP_apply);
/* standard GC & stack check entry points, all defined in HeapStackCheck.hc */
......
......@@ -58,6 +58,9 @@ stg_ap_0_fast
-------------------------------------------------------------------------- */
INFO_TABLE(stg_PAP,/*special layout*/0,0,PAP,"PAP","PAP")
{ foreign "C" barf("PAP object entered!"); }
stg_PAP_apply
{
W_ Words;
W_ pap;
......
......@@ -457,7 +457,7 @@ genApply regstatus args =
nest 4 (vcat [
text "arity = TO_W_(StgPAP_arity(R1));",
text "ASSERT(arity > 0);",
genMkPAP regstatus "NEW_PAP" "ENTRY_LBL(stg_PAP)" "PAP" "PAP"
genMkPAP regstatus "NEW_PAP" "stg_PAP_apply" "PAP" "PAP"
True{-stack apply-} False{-args on stack-} True{-is a PAP-}
args all_args_size fun_info_label
]),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment