fis-gtm/sr_port/op_rterror.c

31 lines
1.3 KiB
C

/****************************************************************
* *
* Copyright 2001 Sanchez Computer Associates, Inc. *
* *
* This source code contains the intellectual property *
* of its copyright holder(s), and is made available *
* under a license. If you do not know the terms of *
* the license, please stop and do not read further. *
* *
****************************************************************/
#include "mdef.h"
#include "op.h"
void op_rterror(int4 sig, boolean_t subrtn)
{
/* If this module is called as an M subroutine, the message we generate
will not have the correct M line-of-code reference because (1) we have
already created the stackframe for the subroutine call we are not now
going to make and (2) the code generator puts the code to call us
at the end of the module. Therefore the Mref generated will be the last line
in the module. To get around this, if this is a subroutine/function call
we will unwind this (bogus) frame prior to making the error call so the
M reference in the error message will be the actual subroutine call itself
instead of the last physical line of the module. Inline calls will not
do an unwind().
*/
if (subrtn) op_unwind();
rts_error(VARLSTCNT(2) sig, 0);
}