aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2014-12-13 01:41:49 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2014-12-13 01:41:49 +0000
commit967b254be1e60b4cb21c8e55a7f4b0346149b3ec (patch)
treea3b2ac2daa43a7e8c15e99ebe7a53f3aa10c167d
parente846322c86b14ce9bac49bbf5869c9427449c507 (diff)
downloadgcc-967b254be1e60b4cb21c8e55a7f4b0346149b3ec.zip
gcc-967b254be1e60b4cb21c8e55a7f4b0346149b3ec.tar.gz
gcc-967b254be1e60b4cb21c8e55a7f4b0346149b3ec.tar.bz2
re PR go/61254 (gccgo: spurious "error: slice end must be integer" [GoSmith])
PR go/61254 compiler: Don't move nil subexpressions into temporaries. From-SVN: r218701
-rw-r--r--gcc/go/gofrontend/statements.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/statements.cc b/gcc/go/gofrontend/statements.cc
index 5b8c2e7..6094e5c 100644
--- a/gcc/go/gofrontend/statements.cc
+++ b/gcc/go/gofrontend/statements.cc
@@ -677,7 +677,8 @@ Move_subexpressions::expression(Expression** pexpr)
{
if (this->skip_ > 0)
--this->skip_;
- else if ((*pexpr)->temporary_reference_expression() == NULL)
+ else if ((*pexpr)->temporary_reference_expression() == NULL
+ && !(*pexpr)->is_nil_expression())
{
Location loc = (*pexpr)->location();
Temporary_statement* temp = Statement::make_temporary(NULL, *pexpr, loc);