From: Ian Lance Taylor Date: Sat, 17 Aug 2013 18:04:35 +0000 (+0000) Subject: compiler: Don't generate value reference in range clause if receiver is a sink. X-Git-Tag: releases/gcc-4.9.0~4546 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f4fca9d48101c0a7e6073fb280e65f976f582811;p=thirdparty%2Fgcc.git compiler: Don't generate value reference in range clause if receiver is a sink. The panic in test/fixedbugs/bug454.go was caused by the generation of an unnecessary var reference when writing a range value into a sink. If the receiving variable is a sink, there's no need to dereference a possible NULL pointer. Fixes Issue 24. From-SVN: r201815 --- diff --git a/gcc/go/gofrontend/parse.cc b/gcc/go/gofrontend/parse.cc index 429d91bafe2b..9d112850fee2 100644 --- a/gcc/go/gofrontend/parse.cc +++ b/gcc/go/gofrontend/parse.cc @@ -5266,7 +5266,8 @@ Parse::range_clause_decl(const Typed_identifier_list* til, no->var_value()->set_type_from_range_value(); if (is_new) any_new = true; - p_range_clause->value = Expression::make_var_reference(no, location); + if (!Gogo::is_sink_name(pti->name())) + p_range_clause->value = Expression::make_var_reference(no, location); } if (!any_new)