aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2007-03-09 10:39:05 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2007-03-09 10:39:05 +0000
commitfb0a24601dd929dac9962358497b8af1856cbd02 (patch)
tree9b9a0b8f5f7816eccbd47b4a8176a7e6116248c1
parent8e4425d798eb4970eac12bd1a66011ed94b2509b (diff)
downloadgcc-fb0a24601dd929dac9962358497b8af1856cbd02.zip
gcc-fb0a24601dd929dac9962358497b8af1856cbd02.tar.gz
gcc-fb0a24601dd929dac9962358497b8af1856cbd02.tar.bz2
* recog.c (decode_asm_operands): No mixed declarations and code.
From-SVN: r122746
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/recog.c13
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6c55f65..71f203b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+ * recog.c (decode_asm_operands): No mixed declarations and code.
+
+2007-03-09 Alexandre Oliva <aoliva@redhat.com>
+
* rtl.def (ASM_INPUT): Add location.
* rtl.h (ASM_INPUT_SOURCE_LOCATION): New.
(ASM_INPUT_SOURCE_FILE, ASM_INPUT_SOURCE_LINE): New.
diff --git a/gcc/recog.c b/gcc/recog.c
index af5387a..5e1df5c 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -1,6 +1,7 @@
/* Subroutines used by or related to instruction recognition.
Copyright (C) 1987, 1988, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998
- 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Free Software Foundation, Inc.
This file is part of GCC.
@@ -1554,11 +1555,13 @@ decode_asm_operands (rtx body, rtx *operands, rtx **operand_locs,
&& GET_CODE (XVECEXP (body, 0, 0)) == SET
&& GET_CODE (SET_SRC (XVECEXP (body, 0, 0))) == ASM_OPERANDS)
{
- asmop = SET_SRC (XVECEXP (body, 0, 0));
int nparallel = XVECLEN (body, 0); /* Includes CLOBBERs. */
- int nin = ASM_OPERANDS_INPUT_LENGTH (asmop);
+ int nin;
int nout = 0; /* Does not include CLOBBERs. */
+ asmop = SET_SRC (XVECEXP (body, 0, 0));
+ nin = ASM_OPERANDS_INPUT_LENGTH (asmop);
+
/* At least one output, plus some CLOBBERs. */
/* The outputs are in the SETs.
@@ -1596,8 +1599,10 @@ decode_asm_operands (rtx body, rtx *operands, rtx **operand_locs,
{
/* No outputs, but some CLOBBERs. */
+ int nin;
+
asmop = XVECEXP (body, 0, 0);
- int nin = ASM_OPERANDS_INPUT_LENGTH (asmop);
+ nin = ASM_OPERANDS_INPUT_LENGTH (asmop);
for (i = 0; i < nin; i++)
{