diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2014-12-13 01:41:49 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2014-12-13 01:41:49 +0000 |
commit | 967b254be1e60b4cb21c8e55a7f4b0346149b3ec (patch) | |
tree | a3b2ac2daa43a7e8c15e99ebe7a53f3aa10c167d | |
parent | e846322c86b14ce9bac49bbf5869c9427449c507 (diff) | |
download | gcc-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.cc | 3 |
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); |