From 54f044ebbbdce8a6758b3fa7bdbd854632bc47b3 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 24 Jun 2010 19:48:16 +0200 Subject: re PR middle-end/44492 (auto-inc-dec pushes PRE_MODIFY/PRE_INC into inline asm operands) PR middle-end/44492 * recog.h (struct recog_data): Add is_asm field. * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is present in constraints of inline-asm operand and memory operand contains {PRE,POST}_{INC,DEC,MODIFY}, return 0. (extract_insn): Initialize recog_data.is_asm. * doc/md.texi (Constraints): Document operand side-effect rules. * g++.dg/torture/pr44492.C: New test. From-SVN: r161328 --- gcc/recog.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gcc/recog.h') diff --git a/gcc/recog.h b/gcc/recog.h index c2972ab..71dba91 100644 --- a/gcc/recog.h +++ b/gcc/recog.h @@ -230,6 +230,9 @@ struct recog_data /* The number of alternatives in the constraints for the insn. */ char n_alternatives; + /* True if insn is ASM_OPERANDS. */ + bool is_asm; + /* Specifies whether an insn alternative is enabled using the `enabled' attribute in the insn pattern definition. For back ends not using the `enabled' attribute the array fields are -- cgit v1.1