From 780140d3aff36953179cad94fb5fd2c555e24914 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 4 May 2012 19:33:18 +0000 Subject: compiler: Correct parse of for with possible composite literal. Fixes, e.g., "for first := true; first; first = false {". From-SVN: r187176 --- gcc/go/gofrontend/parse.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gcc/go/gofrontend/parse.h') diff --git a/gcc/go/gofrontend/parse.h b/gcc/go/gofrontend/parse.h index a838e4b..3139f7e 100644 --- a/gcc/go/gofrontend/parse.h +++ b/gcc/go/gofrontend/parse.h @@ -162,7 +162,8 @@ class Parse // Parser nonterminals. void identifier_list(Typed_identifier_list*); - Expression_list* expression_list(Expression*, bool may_be_sink); + Expression_list* expression_list(Expression*, bool may_be_sink, + bool may_be_composite_lit); bool qualified_ident(std::string*, Named_object**); Type* type(); bool type_may_start_here(); @@ -207,6 +208,7 @@ class Parse bool is_coloneq, bool type_from_init, bool* is_new); Named_object* create_dummy_global(Type*, Expression*, Location); void simple_var_decl_or_assignment(const std::string&, Location, + bool may_be_composite_lit, Range_clause*, Type_switch*); void function_decl(); Typed_identifier* receiver(); @@ -239,8 +241,9 @@ class Parse void expression_stat(Expression*); void send_stmt(Expression*); void inc_dec_stat(Expression*); - void assignment(Expression*, Range_clause*); - void tuple_assignment(Expression_list*, Range_clause*); + void assignment(Expression*, bool may_be_composite_lit, Range_clause*); + void tuple_assignment(Expression_list*, bool may_be_composite_lit, + Range_clause*); void send(); void go_or_defer_stat(); void return_stat(); -- cgit v1.1