mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-26 19:44:11 +08:00
(gas_cgen_parse_operand): Copy opinfo parameter into a local variable in case
it is clobbered by the setjmp.
This commit is contained in:
parent
4cfaf6d581
commit
199fea98c9
@ -6,6 +6,11 @@
|
||||
* config/te-armlinuxeabi.h (EABI_DEFAULT): Define.
|
||||
* config/te-symbian.h: Include "te-armeabi.h".
|
||||
|
||||
2005-03-16 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* cgen.c (gas_cgen_parse_operand): Copy opinfo parameter into a
|
||||
local variable in case it is clobbered by the setjmp.
|
||||
|
||||
2005-03-16 Nick Clifton <nickc@redhat.com>
|
||||
Ben Elliston <bje@au.ibm.com>
|
||||
|
||||
|
@ -320,9 +320,11 @@ gas_cgen_parse_operand (cd, want, strP, opindex, opinfo, resultP, valueP)
|
||||
/* These are volatile to survive the setjmp. */
|
||||
char * volatile hold;
|
||||
enum cgen_parse_operand_result * volatile resultP_1;
|
||||
volatile int opinfo_1;
|
||||
#else
|
||||
static char *hold;
|
||||
static enum cgen_parse_operand_result *resultP_1;
|
||||
int opinfo_1;
|
||||
#endif
|
||||
const char *errmsg;
|
||||
expressionS exp;
|
||||
@ -336,6 +338,7 @@ gas_cgen_parse_operand (cd, want, strP, opindex, opinfo, resultP, valueP)
|
||||
resultP_1 = resultP;
|
||||
hold = input_line_pointer;
|
||||
input_line_pointer = (char *) *strP;
|
||||
opinfo_1 = opinfo;
|
||||
|
||||
/* We rely on md_operand to longjmp back to us.
|
||||
This is done via gas_cgen_md_operand. */
|
||||
@ -356,7 +359,7 @@ gas_cgen_parse_operand (cd, want, strP, opindex, opinfo, resultP, valueP)
|
||||
input_line_pointer = hold;
|
||||
|
||||
#ifdef TC_CGEN_PARSE_FIX_EXP
|
||||
opinfo = TC_CGEN_PARSE_FIX_EXP (opinfo, & exp);
|
||||
opinfo = TC_CGEN_PARSE_FIX_EXP (opinfo_1, & exp);
|
||||
#endif
|
||||
|
||||
/* FIXME: Need to check `want'. */
|
||||
@ -383,7 +386,7 @@ gas_cgen_parse_operand (cd, want, strP, opindex, opinfo, resultP, valueP)
|
||||
break;
|
||||
de_fault:
|
||||
default:
|
||||
queue_fixup (opindex, opinfo, &exp);
|
||||
queue_fixup (opindex, opinfo_1, &exp);
|
||||
*valueP = 0;
|
||||
*resultP = CGEN_PARSE_OPERAND_RESULT_QUEUED;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user