diff options
author | Manfred Hollstein <manfred@gcc.gnu.org> | 1998-03-19 00:01:20 +0000 |
---|---|---|
committer | Manfred Hollstein <manfred@gcc.gnu.org> | 1998-03-19 00:01:20 +0000 |
commit | 22bf44225f9fae2135aa57a03167f513f8e745ba (patch) | |
tree | f0f8a8d33e4a552b7ff922b2ffab91daf10cac9a /gcc/final.c | |
parent | af7da1998dad45df5494051a3ea59aa6b6b850ea (diff) | |
download | gcc-22bf44225f9fae2135aa57a03167f513f8e745ba.zip gcc-22bf44225f9fae2135aa57a03167f513f8e745ba.tar.gz gcc-22bf44225f9fae2135aa57a03167f513f8e745ba.tar.bz2 |
final.c (insn_noperands): Change type to unsigned int.
P
* final.c (insn_noperands): Change type to unsigned int.
(final_scan_insn): Likewise for noperands;
properly check operand number boundaries.
From-SVN: r18693
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/final.c b/gcc/final.c index 70a6fbe..aeb7677 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -161,7 +161,7 @@ extern int length_unit_log; /* This is defined in insn-attrtab.c. */ static rtx this_is_asm_operands; /* Number of operands of this insn, for an `asm' with operands. */ -static int insn_noperands; +static unsigned int insn_noperands; /* Compare optimization flag. */ @@ -2366,7 +2366,7 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) /* Detect `asm' construct with operands. */ if (asm_noperands (body) >= 0) { - int noperands = asm_noperands (body); + unsigned int noperands = asm_noperands (body); rtx *ops = (rtx *) alloca (noperands * sizeof (rtx)); char *string; @@ -3255,7 +3255,7 @@ output_asm_insn (template, operands) if (! (*p >= '0' && *p <= '9')) output_operand_lossage ("operand number missing after %-letter"); - else if (this_is_asm_operands && c >= insn_noperands) + else if (this_is_asm_operands && (c < 0 || (unsigned int) c >= insn_noperands)) output_operand_lossage ("operand number out of range"); else if (letter == 'l') output_asm_label (operands[c]); @@ -3288,7 +3288,7 @@ output_asm_insn (template, operands) else if (*p >= '0' && *p <= '9') { c = atoi (p); - if (this_is_asm_operands && c >= insn_noperands) + if (this_is_asm_operands && (c < 0 || (unsigned int) c >= insn_noperands)) output_operand_lossage ("operand number out of range"); else output_operand (operands[c], 0); |