diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-07-24 17:22:03 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-07-24 17:22:03 +0000 |
commit | c79bba92f212247dc447d4349762b9f86dfd15b9 (patch) | |
tree | fb954857faf6db9e0a780900aafda6fb34473eeb | |
parent | c586a5e3f16a0d8165912ad0681e57a3c9215e9b (diff) | |
download | gcc-c79bba92f212247dc447d4349762b9f86dfd15b9.tar.gz |
compiler: Don't make temporaries for constant expressions.
Fixes golang/go#11039.
Reviewed-on: https://go-review.googlesource.com/10645
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@226180 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | gcc/go/gofrontend/statements.cc | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index a7b5246ad39..2610a78ced0 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -cbb27e8089e11094a20502e53ef69c9c36955f85 +ac462880e803a926005f1756b0f8d82ff0c47499 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/statements.cc b/gcc/go/gofrontend/statements.cc index a44145da23e..96c142c6eab 100644 --- a/gcc/go/gofrontend/statements.cc +++ b/gcc/go/gofrontend/statements.cc @@ -689,7 +689,8 @@ Move_subexpressions::expression(Expression** pexpr) if (this->skip_ > 0) --this->skip_; else if ((*pexpr)->temporary_reference_expression() == NULL - && !(*pexpr)->is_nil_expression()) + && !(*pexpr)->is_nil_expression() + && !(*pexpr)->is_constant()) { Location loc = (*pexpr)->location(); Temporary_statement* temp = Statement::make_temporary(NULL, *pexpr, loc); |