summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/read-rtl.c10
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3639ad68c90..c442371f657 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+ * read-rtl.c (read_rtx): Tidy use of format_ptr.
+
+2004-08-23 Richard Sandiford <rsandifo@redhat.com>
+
* read-rtl.c (string_obstack): New file-scope variable.
(read_string, read_quoted_string, read_braced_string)
(read_escape): Remove obstack parameter and use string_obstack instead.
diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c
index 57bdfa00966..2b9bd915d23 100644
--- a/gcc/read-rtl.c
+++ b/gcc/read-rtl.c
@@ -598,8 +598,8 @@ again:
else
ungetc (i, infile);
- for (i = 0; i < GET_RTX_LENGTH (GET_CODE (return_rtx)); i++)
- switch (*format_ptr++)
+ for (i = 0; format_ptr[i] != 0; i++)
+ switch (format_ptr[i])
{
/* 0 means a field for internal use only.
Don't expect it to be present in the input. */
@@ -668,7 +668,7 @@ again:
/* 'S' fields are optional and should be NULL if no string
was given. Also allow normal 's' and 'T' strings to be
omitted, treating them in the same way as empty strings. */
- XSTR (return_rtx, i) = (format_ptr[-1] == 'S' ? NULL : "");
+ XSTR (return_rtx, i) = (format_ptr[i] == 'S' ? NULL : "");
break;
}
@@ -676,7 +676,7 @@ again:
DEFINE_INSN_AND_SPLIT, or DEFINE_PEEPHOLE automatically
gets a star inserted as its first character, if it is
written with a brace block instead of a string constant. */
- star_if_braced = (format_ptr[-1] == 'T');
+ star_if_braced = (format_ptr[i] == 'T');
stringbuf = read_string (infile, star_if_braced);
@@ -741,7 +741,7 @@ again:
default:
fprintf (stderr,
"switch format wrong in rtl.read_rtx(). format was: %c.\n",
- format_ptr[-1]);
+ format_ptr[i]);
fprintf (stderr, "\tfile position: %ld\n", ftell (infile));
abort ();
}