Index: src/ops/core.ops =================================================================== --- src/ops/core.ops (revision 47458) +++ src/ops/core.ops (working copy) @@ -542,6 +542,7 @@ PARROT_ERRORS_RESULT_COUNT_FLAG); argc = VTABLE_elements(interp, signature); + Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), PMCNULL); goto OFFSET(argc + 2); } Index: src/ops/core_ops.c =================================================================== --- src/ops/core_ops.c (revision 47458) +++ src/ops/core_ops.c (working copy) @@ -14516,7 +14516,8 @@ Parrot_pcc_fill_params_from_op(interp, call_object, signature, raw_params, PARROT_ERRORS_RESULT_COUNT_FLAG); - argc = VTABLE_elements(interp, signature);return (opcode_t *)cur_opcode + argc + 2; + argc = VTABLE_elements(interp, signature); + Parrot_pcc_set_signature(interp, CURRENT_CONTEXT(interp), PMCNULL);return (opcode_t *)cur_opcode + argc + 2; } opcode_t * @@ -14797,7 +14798,7 @@ opcode_t *dest; opcode_t * const ret =cur_opcode + 2; PMC * const resume = pmc_new(interp, enum_class_Continuation); - PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, + PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, CONTROL_EXIT, NULL); VTABLE_set_pointer(interp, resume, ret); @@ -14815,7 +14816,7 @@ opcode_t *dest; opcode_t * const ret =cur_opcode + 2; PMC * const resume = pmc_new(interp, enum_class_Continuation); - PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, + PMC * const exception = Parrot_ex_build_exception(interp, EXCEPT_exit, CONTROL_EXIT, NULL); VTABLE_set_pointer(interp, resume, ret); Index: t/pmc/eval.t =================================================================== --- t/pmc/eval.t (revision 47458) +++ t/pmc/eval.t (working copy) @@ -66,8 +66,8 @@ concat S5, "returncc\n" compreg P1, "PASM" set_args "0", S5 + invokecc P1 get_results "0", P6 - invokecc P1 get_global P2, "_foo" invokecc P2 print "back\n" Index: t/pmc/objects.t =================================================================== --- t/pmc/objects.t (revision 47458) +++ t/pmc/objects.t (working copy) @@ -1603,46 +1603,46 @@ new $P5, ['String'] # set attribute values set $P5, "i" # attribute slots have reference semantics set_args "0,0", $P5, "i" + callmethodcc $P13, "Foo54__set" get_results "" - callmethodcc $P13, "Foo54__set" new $P5, ['String'] set $P5, "j" set_args "0,0", $P5, "j" + callmethodcc $P13,"Foo54__set" get_results "" - callmethodcc $P13,"Foo54__set" new $P5, ['String'] set $P5, "k" set_args "0,0", $P5, "k" + callmethodcc $P13,"Bar54__set" get_results "" - callmethodcc $P13,"Bar54__set" new $P5, ['String'] set $P5, "l" set_args "0,0", $P5, "l" + callmethodcc $P13,"Bar54__set" get_results "" - callmethodcc $P13,"Bar54__set" # now retrieve attributes set_args "0", "i" + callmethodcc $P13,"Foo54__get" get_results "0", $P5 - callmethodcc $P13,"Foo54__get" is( $P5, "i", 'got attrib i from Bar54->Foo54__get' ) set_args "0", "j" + callmethodcc $P13,"Foo54__get" get_results "0", $P5 - callmethodcc $P13,"Foo54__get" is( $P5, "j", 'got attrib j from Bar54->Foo54__get' ) set_args "0", "k" + callmethodcc $P13,"Bar54__get" get_results "0", $P5 - callmethodcc $P13,"Bar54__get" is( $P5, "k", 'got attrib k from Bar54->Bar54__get' ) set_args "0", "l" + callmethodcc $P13,"Bar54__get" get_results "0", $P5 - callmethodcc $P13,"Bar54__get" is( $P5, "l", 'got attrib l from Bar54->Bar54__get' ) .end Index: t/op/calling.t =================================================================== --- t/op/calling.t (revision 47458) +++ t/op/calling.t (working copy) @@ -1852,9 +1852,9 @@ pasm_output_is( <<'CODE', <<'OUTPUT', "named - 5 slurpy array -> named" ); .pcc_sub main: set_args "0, 0, 0, 0x200, 0, 0x200, 0", 10, 20, 30, 'a', 40, 'b', 50 - get_results "" find_name P1, "foo" invokecc P1 + get_results "" print "ok\n" end .pcc_sub foo: