+2002-04-02 Richard Henderson <rth@redhat.com>
+
+ PR opt/190
+ * final.c (this_is_asm_operands): Export.
+ * output.h (this_is_asm_operands): Declare.
+ * config/i386/i386.c (print_operand): Error odd asm operands.
+
2002-04-02 Richard Henderson <rth@redhat.com>
PR opt/420
else if (CONSTANT_ADDRESS_P (x) && code =='P'
&& GET_CODE (x) != CONST_INT)
output_addr_const (file, x);
+ else if (this_is_asm_operands && ! address_operand (x, VOIDmode))
+ output_operand_lossage ("invalid constraints for operand");
else
output_address (x);
}
/* Nonzero while outputting an `asm' with operands.
This means that inconsistencies are the user's fault, so don't abort.
The precise value is the insn being output, to pass to error_for_asm. */
-static rtx this_is_asm_operands;
+rtx this_is_asm_operands;
/* Number of operands of this insn, for an `asm' with operands. */
static unsigned int insn_noperands;
/* Last insn processed by final_scan_insn. */
extern struct rtx_def *current_output_insn;
+/* Nonzero while outputting an `asm' with operands.
+ This means that inconsistencies are the user's fault, so don't abort.
+ The precise value is the insn being output, to pass to error_for_asm. */
+extern rtx this_is_asm_operands;
+
/* Decide whether DECL needs to be in a writable section. RELOC is the same
as for SELECT_SECTION. */