aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/go/gofrontend/parse.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/go/gofrontend/parse.cc')
-rw-r--r--gcc-4.9/gcc/go/gofrontend/parse.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/go/gofrontend/parse.cc b/gcc-4.9/gcc/go/gofrontend/parse.cc
index 7614e6fc7..7a9faaa72 100644
--- a/gcc-4.9/gcc/go/gofrontend/parse.cc
+++ b/gcc-4.9/gcc/go/gofrontend/parse.cc
@@ -2865,7 +2865,10 @@ Parse::function_lit()
// For a function literal, the next token must be a '{'. If we
// don't see that, then we may have a type expression.
if (!this->peek_token()->is_op(OPERATOR_LCURLY))
- return Expression::make_type(type, location);
+ {
+ hold_enclosing_vars.swap(this->enclosing_vars_);
+ return Expression::make_type(type, location);
+ }
bool hold_is_erroneous_function = this->is_erroneous_function_;
if (fntype_is_error)