From eae49211e13efa075d57ab354ea4207666eadc96 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 13 Aug 2017 10:37:13 -0600 Subject: [PATCH] Remove make_cleanup_clear_parser_state This removes make_cleanup_clear_parser_state in favor of scoped_restore. 2017-09-05 Tom Tromey * utils.c (do_clear_parser_state): Remove. (make_cleanup_clear_parser_state): Remove. * p-exp.y (pascal_parse): Use scoped_restore. * m2-exp.y (m2_parse): Use scoped_restore. * f-exp.y (f_parse): Use scoped_restore. * d-exp.y (d_parse): Use scoped_restore. * c-exp.y (c_parse): Use scoped_restore. * ada-exp.y (ada_parse): Use scoped_restore. * utils.h (make_cleanup_clear_parser_state): Remove. --- gdb/ChangeLog | 12 ++++++++++++ gdb/ada-exp.y | 8 ++------ gdb/c-exp.y | 2 +- gdb/d-exp.y | 2 +- gdb/f-exp.y | 8 ++------ gdb/go-exp.y | 2 +- gdb/m2-exp.y | 9 ++------- gdb/p-exp.y | 8 ++------ gdb/utils.c | 18 ------------------ gdb/utils.h | 4 ---- 10 files changed, 23 insertions(+), 50 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8080a55078e..f3610239b27 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2017-09-05 Tom Tromey + + * utils.c (do_clear_parser_state): Remove. + (make_cleanup_clear_parser_state): Remove. + * p-exp.y (pascal_parse): Use scoped_restore. + * m2-exp.y (m2_parse): Use scoped_restore. + * f-exp.y (f_parse): Use scoped_restore. + * d-exp.y (d_parse): Use scoped_restore. + * c-exp.y (c_parse): Use scoped_restore. + * ada-exp.y (ada_parse): Use scoped_restore. + * utils.h (make_cleanup_clear_parser_state): Remove. + 2017-09-06 Keith Seitz * dwarf2read.c (dw2_linkage_name_attr): New function. diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y index 1eea4546706..618c9d540e9 100644 --- a/gdb/ada-exp.y +++ b/gdb/ada-exp.y @@ -733,10 +733,8 @@ static struct obstack temp_parse_space; int ada_parse (struct parser_state *par_state) { - int result; - struct cleanup *c = make_cleanup_clear_parser_state (&pstate); - /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; @@ -745,9 +743,7 @@ ada_parse (struct parser_state *par_state) obstack_free (&temp_parse_space, NULL); obstack_init (&temp_parse_space); - result = yyparse (); - do_cleanups (c); - return result; + return yyparse (); } void diff --git a/gdb/c-exp.y b/gdb/c-exp.y index bcc3e12dfc5..43af80cb19f 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -3232,6 +3232,7 @@ c_parse (struct parser_state *par_state) struct cleanup *back_to; /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; @@ -3239,7 +3240,6 @@ c_parse (struct parser_state *par_state) assuming they'll be run here (below). */ back_to = make_cleanup (free_current_contents, &expression_macro_scope); - make_cleanup_clear_parser_state (&pstate); /* Set up the scope for macro expansion. */ expression_macro_scope = NULL; diff --git a/gdb/d-exp.y b/gdb/d-exp.y index d392a5cb2ef..9b773c65441 100644 --- a/gdb/d-exp.y +++ b/gdb/d-exp.y @@ -1624,6 +1624,7 @@ d_parse (struct parser_state *par_state) struct cleanup *back_to; /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; @@ -1633,7 +1634,6 @@ d_parse (struct parser_state *par_state) scoped_restore restore_yydebug = make_scoped_restore (&yydebug, parser_debug); - make_cleanup_clear_parser_state (&pstate); /* Initialize some state used by the lexer. */ last_was_structop = 0; diff --git a/gdb/f-exp.y b/gdb/f-exp.y index 7e9e234bf68..8dcc811b681 100644 --- a/gdb/f-exp.y +++ b/gdb/f-exp.y @@ -1206,16 +1206,12 @@ yylex (void) int f_parse (struct parser_state *par_state) { - int result; - struct cleanup *c = make_cleanup_clear_parser_state (&pstate); - /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; - result = yyparse (); - do_cleanups (c); - return result; + return yyparse (); } void diff --git a/gdb/go-exp.y b/gdb/go-exp.y index f2f359609cd..098e7340fcd 100644 --- a/gdb/go-exp.y +++ b/gdb/go-exp.y @@ -1564,6 +1564,7 @@ go_parse (struct parser_state *par_state) struct cleanup *back_to; /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; @@ -1573,7 +1574,6 @@ go_parse (struct parser_state *par_state) scoped_restore restore_yydebug = make_scoped_restore (&yydebug, parser_debug); - make_cleanup_clear_parser_state (&pstate); /* Initialize some state used by the lexer. */ last_was_structop = 0; diff --git a/gdb/m2-exp.y b/gdb/m2-exp.y index 9179187aa20..02dc36f4803 100644 --- a/gdb/m2-exp.y +++ b/gdb/m2-exp.y @@ -1036,17 +1036,12 @@ yylex (void) int m2_parse (struct parser_state *par_state) { - int result; - struct cleanup *c = make_cleanup_clear_parser_state (&pstate); - /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; - result = yyparse (); - do_cleanups (c); - - return result; + return yyparse (); } void diff --git a/gdb/p-exp.y b/gdb/p-exp.y index 81eb2162589..eee4fa94b3a 100644 --- a/gdb/p-exp.y +++ b/gdb/p-exp.y @@ -1701,16 +1701,12 @@ yylex (void) int pascal_parse (struct parser_state *par_state) { - int result; - struct cleanup *c = make_cleanup_clear_parser_state (&pstate); - /* Setting up the parser state. */ + scoped_restore pstate_restore = make_scoped_restore (&pstate); gdb_assert (par_state != NULL); pstate = par_state; - result = yyparse (); - do_cleanups (c); - return result; + return yyparse (); } void diff --git a/gdb/utils.c b/gdb/utils.c index af50cf09d6a..f2da2df60f5 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -257,24 +257,6 @@ make_cleanup_value_free (struct value *value) return make_cleanup (do_value_free, value); } -/* Helper function for make_cleanup_clear_parser_state. */ - -static void -do_clear_parser_state (void *ptr) -{ - struct parser_state **p = (struct parser_state **) ptr; - - *p = NULL; -} - -/* Clean (i.e., set to NULL) the parser state variable P. */ - -struct cleanup * -make_cleanup_clear_parser_state (struct parser_state **p) -{ - return make_cleanup (do_clear_parser_state, (void *) p); -} - /* This function is useful for cleanups. Do diff --git a/gdb/utils.h b/gdb/utils.h index 3ceefc1dc6c..1c8b95cd2eb 100644 --- a/gdb/utils.h +++ b/gdb/utils.h @@ -236,10 +236,6 @@ struct htab_deleter /* A unique_ptr wrapper for htab_t. */ typedef std::unique_ptr htab_up; -struct parser_state; -extern struct cleanup *make_cleanup_clear_parser_state - (struct parser_state **p); - extern void free_current_contents (void *); extern void init_page_info (void); -- 2.30.2