diff options
author | dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-05-10 18:28:10 +0000 |
---|---|---|
committer | dmalcolm <dmalcolm@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-05-10 18:28:10 +0000 |
commit | 3604118da2f0e62a75ebd6d206a8cd3ef2573b01 (patch) | |
tree | 4536dc681253ddda5e2965d30e5b73bfb1e4008a | |
parent | ffea1e28b0b44cf71c5cd4bfd157dae2179bd823 (diff) | |
download | gcc-3604118da2f0e62a75ebd6d206a8cd3ef2573b01.tar.gz |
Simplify read-md.c and read-rtl.c using require_char_ws
read-md.c and read-rtl.c repeatedly use this pattern:
c = read_skip_spaces ();
if (c != ')')
fatal_expected_char (')', c);
Simplify them by introduce a helper function to do this.
gcc/ChangeLog:
* read-md.c (require_char_ws): New function.
(read_string): Simplify using require_char_ws.
(handle_constants): Likewise.
(handle_enum): Likewise.
(handle_file): Likewise.
* read-md.h (require_char_ws): New declaration.
* read-rtl.c (read_conditions): Simplify using require_char_ws.
(read_mapping): Likewise.
(read_rtx_code): Likewise.
(read_nested_rtx): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236101 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 13 | ||||
-rw-r--r-- | gcc/read-md.c | 33 | ||||
-rw-r--r-- | gcc/read-md.h | 1 | ||||
-rw-r--r-- | gcc/read-rtl.c | 33 |
4 files changed, 38 insertions, 42 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1fa7f5e0ada..2e58aebb21d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2016-05-10 David Malcolm <dmalcolm@redhat.com> + + * read-md.c (require_char_ws): New function. + (read_string): Simplify using require_char_ws. + (handle_constants): Likewise. + (handle_enum): Likewise. + (handle_file): Likewise. + * read-md.h (require_char_ws): New declaration. + * read-rtl.c (read_conditions): Simplify using require_char_ws. + (read_mapping): Likewise. + (read_rtx_code): Likewise. + (read_nested_rtx): Likewise. + 2016-05-10 James Norris <jnorris@codesourcery.com> * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o diff --git a/gcc/read-md.c b/gcc/read-md.c index 6c588781978..b422d8dc75c 100644 --- a/gcc/read-md.c +++ b/gcc/read-md.c @@ -391,6 +391,17 @@ read_skip_spaces (void) } } +/* Consume any whitespace, then consume the next non-whitespace + character, issuing a fatal error if it is not EXPECTED. */ + +void +require_char_ws (char expected) +{ + int ch = read_skip_spaces (); + if (ch != expected) + fatal_expected_char (expected, ch); +} + /* Read an rtx code name into NAME. It is terminated by any of the punctuation chars of rtx printed syntax. */ @@ -603,11 +614,7 @@ read_string (int star_if_braced) fatal_with_file_and_line ("expected `\"' or `{', found `%c'", c); if (saw_paren) - { - c = read_skip_spaces (); - if (c != ')') - fatal_expected_char (')', c); - } + require_char_ws (')'); set_md_ptr_loc (stringbuf, read_md_filename, old_lineno); return stringbuf; @@ -764,9 +771,7 @@ handle_constants (void) int c; htab_t defs; - c = read_skip_spaces (); - if (c != '[') - fatal_expected_char ('[', c); + require_char_ws ('['); /* Disable constant expansion during definition processing. */ defs = md_constants; @@ -782,9 +787,7 @@ handle_constants (void) read_name (&value); add_constant (defs, xstrdup (name.string), xstrdup (value.string), 0); - c = read_skip_spaces (); - if (c != ')') - fatal_expected_char (')', c); + require_char_ws (')'); } md_constants = defs; } @@ -846,9 +849,7 @@ handle_enum (file_location loc, bool md_p) *slot = def; } - c = read_skip_spaces (); - if (c != '[') - fatal_expected_char ('[', c); + require_char_ws ('['); while ((c = read_skip_spaces ()) != ']') { @@ -1007,9 +1008,7 @@ handle_file (directive_handler_t handle_directive) else read_skip_construct (1, loc); - c = read_skip_spaces (); - if (c != ')') - fatal_expected_char (')', c); + require_char_ws (')'); } fclose (read_md_file); } diff --git a/gcc/read-md.h b/gcc/read-md.h index fc3b077325b..fa259517a26 100644 --- a/gcc/read-md.h +++ b/gcc/read-md.h @@ -141,6 +141,7 @@ extern void fatal_with_file_and_line (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; extern void fatal_expected_char (int, int) ATTRIBUTE_NORETURN; extern int read_skip_spaces (void); +extern void require_char_ws (char expected); extern void read_name (struct md_name *); extern char *read_quoted_string (void); extern char *read_string (int); diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c index 79f42bf01e6..dc3a336b45b 100644 --- a/gcc/read-rtl.c +++ b/gcc/read-rtl.c @@ -742,9 +742,7 @@ read_conditions (void) { int c; - c = read_skip_spaces (); - if (c != '[') - fatal_expected_char ('[', c); + require_char_ws ('['); while ( (c = read_skip_spaces ()) != ']') { @@ -759,14 +757,10 @@ read_conditions (void) validate_const_int (name.string); value = atoi (name.string); - c = read_skip_spaces (); - if (c != '"') - fatal_expected_char ('"', c); + require_char_ws ('"'); expr = read_quoted_string (); - c = read_skip_spaces (); - if (c != ')') - fatal_expected_char (')', c); + require_char_ws (')'); add_c_test (expr, value); } @@ -890,9 +884,7 @@ read_mapping (struct iterator_group *group, htab_t table) read_name (&name); m = add_mapping (group, table, name.string); - c = read_skip_spaces (); - if (c != '[') - fatal_expected_char ('[', c); + require_char_ws ('['); /* Read each value. */ end_ptr = &m->values; @@ -912,9 +904,7 @@ read_mapping (struct iterator_group *group, htab_t table) /* A "(name string)" pair. */ read_name (&name); string = read_string (false); - c = read_skip_spaces (); - if (c != ')') - fatal_expected_char (')', c); + require_char_ws (')'); } number = group->find_builtin (name.string); end_ptr = add_map_value (end_ptr, number, string); @@ -1181,9 +1171,7 @@ read_rtx_code (const char *code_name) int list_counter = 0; rtvec return_vec = NULL_RTVEC; - c = read_skip_spaces (); - if (c != '[') - fatal_expected_char ('[', c); + require_char_ws ('['); /* Add expressions to a list, while keeping a count. */ obstack_init (&vector_stack); @@ -1398,12 +1386,9 @@ static rtx read_nested_rtx (void) { struct md_name name; - int c; rtx return_rtx; - c = read_skip_spaces (); - if (c != '(') - fatal_expected_char ('(', c); + require_char_ws ('('); read_name (&name); if (strcmp (name.string, "nil") == 0) @@ -1411,9 +1396,7 @@ read_nested_rtx (void) else return_rtx = read_rtx_code (name.string); - c = read_skip_spaces (); - if (c != ')') - fatal_expected_char (')', c); + require_char_ws (')'); return return_rtx; } |