aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2011-08-29 22:02:01 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-08-29 22:02:01 +0000
commit273113346e85423e88d1352c4acafe41e7dd90b5 (patch)
tree2c70d82fe0677775cd49467caeb9a9e58418e2b1
parent7a3eeb8555b6c14ccb9cd6b45ae0257da966fa07 (diff)
downloadgcc-273113346e85423e88d1352c4acafe41e7dd90b5.zip
gcc-273113346e85423e88d1352c4acafe41e7dd90b5.tar.gz
gcc-273113346e85423e88d1352c4acafe41e7dd90b5.tar.bz2
Don't lower blocks twice.
From-SVN: r178263
-rw-r--r--gcc/go/gofrontend/gogo.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc
index 4aafe41..c544eba 100644
--- a/gcc/go/gofrontend/gogo.cc
+++ b/gcc/go/gofrontend/gogo.cc
@@ -1268,6 +1268,12 @@ Lower_parse_tree::function(Named_object* no)
int
Lower_parse_tree::statement(Block* block, size_t* pindex, Statement* sorig)
{
+ // Because we explicitly traverse the statement's contents
+ // ourselves, we want to skip block statements here. There is
+ // nothing to lower in a block statement.
+ if (sorig->is_block_statement())
+ return TRAVERSE_CONTINUE;
+
Statement_inserter hold_inserter(this->inserter_);
this->inserter_ = Statement_inserter(block, pindex);