diff options
author | Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> | 1998-12-04 12:55:59 +0000 |
---|---|---|
committer | Bernd Schmidt <crux@gcc.gnu.org> | 1998-12-04 12:55:59 +0000 |
commit | f62a15e367dd53a270f7766c5c62a82629478d3e (patch) | |
tree | 7eac8b63b458dd5da67b48a5a4d8ca0d0304223f /gcc/stmt.c | |
parent | 71eb0b9ec35acd4843115354a94be4dcb150f7af (diff) | |
download | gcc-f62a15e367dd53a270f7766c5c62a82629478d3e.zip gcc-f62a15e367dd53a270f7766c5c62a82629478d3e.tar.gz gcc-f62a15e367dd53a270f7766c5c62a82629478d3e.tar.bz2 |
final.c (cleanup_subreg_operands): Delete some unused code.
* final.c (cleanup_subreg_operands): Delete some unused code.
* recog.h (MAX_RECOG_ALTERNATIVES): New macro.
(struct insn_alternative): New structure definition.
(recog_op_alt): Declare variable.
(preprocess_constraints): Declare function.
* recog.c (recog_op_alt): New variable.
(extract_insn): Verify number of alternatives is in range.
(preprocess_constraints): New function.
* reg-stack.c: Include recog.h.
(constrain_asm_operands): Delete.
(get_asm_operand_lengths): Delete.
(get_asm_operand_n_inputs): New function.
(record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
N_OUTPUTS args. All callers changed.
Compute number of inputs and outputs here by calling
get_asm_operand_n_inputs.
Instead of constrain_asm_operands, call extract_insn,
constrain_operands and preprocess_constaints. Use information
computed by these functions throughout.
(record_reg_life): Delete code that is unused due to changes in
record_asm_reg_life.
(subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
N_INPUTS and N_OUTPUTS args. All callers changed.
Similar changes as in record_asm_reg_life.
(subst_stack_regs): Move n_operands declaration into the if statement
where it's used.
Delete code that is unused due to changes in subst_asm_stack_regs.
* stmt.c (expand_asm_operands): Verify number of alternatives is in
range.
* Makefile.in (reg-stack.o): Depend on recog.h.
From-SVN: r24090
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -1219,6 +1219,12 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) int nalternatives = n_occurrences (',', TREE_STRING_POINTER (tmp)); tree next = inputs; + if (nalternatives + 1 > MAX_RECOG_ALTERNATIVES) + { + error ("too many alternatives in `asm'"); + return; + } + tmp = outputs; while (tmp) { |