From fb4347e44d3e1bf9970f361cf8b25c0b7f5d1d9f Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 25 Mar 2011 17:34:44 +0000 Subject: Give an error if a label is defined but not used. From-SVN: r171518 --- gcc/go/gofrontend/parse.h | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'gcc/go/gofrontend/parse.h') diff --git a/gcc/go/gofrontend/parse.h b/gcc/go/gofrontend/parse.h index d164414..a9f6455 100644 --- a/gcc/go/gofrontend/parse.h +++ b/gcc/go/gofrontend/parse.h @@ -150,7 +150,7 @@ class Parse // For break and continue we keep a stack of statements with // associated labels (if any). The top of the stack is used for a // break or continue statement with no label. - typedef std::vector > Bc_stack; + typedef std::vector > Bc_stack; // Parser nonterminals. void identifier_list(Typed_identifier_list*); @@ -220,7 +220,7 @@ class Parse bool* is_type_switch); Expression* qualified_expr(Expression*, source_location); Expression* id_to_expression(const std::string&, source_location); - void statement(const Label*); + void statement(Label*); bool statement_may_start_here(); void labeled_stmt(const std::string&, source_location); Expression* simple_stat(bool, bool, Range_clause*, Type_switch*); @@ -236,26 +236,25 @@ class Parse void go_or_defer_stat(); void return_stat(); void if_stat(); - void switch_stat(const Label*); - Statement* expr_switch_body(const Label*, Expression*, source_location); + void switch_stat(Label*); + Statement* expr_switch_body(Label*, Expression*, source_location); void expr_case_clause(Case_clauses*, bool* saw_default); Expression_list* expr_switch_case(bool*); - Statement* type_switch_body(const Label*, const Type_switch&, - source_location); + Statement* type_switch_body(Label*, const Type_switch&, source_location); void type_case_clause(Named_object*, Type_case_clauses*, bool* saw_default); void type_switch_case(std::vector*, bool*); - void select_stat(const Label*); + void select_stat(Label*); void comm_clause(Select_clauses*, bool* saw_default); bool comm_case(bool*, Expression**, Expression**, Expression**, std::string*, std::string*, bool*); bool send_or_recv_stmt(bool*, Expression**, Expression**, Expression**, std::string*, std::string*); - void for_stat(const Label*); + void for_stat(Label*); void for_clause(Expression**, Block**); void range_clause_decl(const Typed_identifier_list*, Range_clause*); void range_clause_expr(const Expression_list*, Range_clause*); - void push_break_statement(Statement*, const Label*); - void push_continue_statement(Statement*, const Label*); + void push_break_statement(Statement*, Label*); + void push_continue_statement(Statement*, Label*); void pop_break_statement(); void pop_continue_statement(); Statement* find_bc_statement(const Bc_stack*, const std::string&); -- cgit v1.1