diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/read-rtl.c | 10 |
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 (); } |