diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-08-29 22:02:01 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-08-29 22:02:01 +0000 |
commit | 273113346e85423e88d1352c4acafe41e7dd90b5 (patch) | |
tree | 2c70d82fe0677775cd49467caeb9a9e58418e2b1 | |
parent | 7a3eeb8555b6c14ccb9cd6b45ae0257da966fa07 (diff) | |
download | gcc-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.cc | 6 |
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); |