diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-02-23 04:54:27 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-02-23 04:54:27 +0000 |
commit | b68a9b10c8081a0e4b4811bbbbfa39749d167c09 (patch) | |
tree | 55e93bd6fa4aa35ab44db741fb1a570be5d4ab3a | |
parent | 7fcf46f509414d97aea64a10f441781ad8c4b9de (diff) | |
download | gcc-b68a9b10c8081a0e4b4811bbbbfa39749d167c09.zip gcc-b68a9b10c8081a0e4b4811bbbbfa39749d167c09.tar.gz gcc-b68a9b10c8081a0e4b4811bbbbfa39749d167c09.tar.bz2 |
Fix missing type traversals.
From-SVN: r170427
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 13 | ||||
-rw-r--r-- | gcc/go/gofrontend/statements.cc | 3 |
2 files changed, 16 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 6440ee1..264dd57 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -2357,6 +2357,9 @@ class Const_expression : public Expression check_for_init_loop(); protected: + int + do_traverse(Traverse*); + Expression* do_lower(Gogo*, Named_object*, int); @@ -2412,6 +2415,16 @@ class Const_expression : public Expression mutable bool seen_; }; +// Traversal. + +int +Const_expression::do_traverse(Traverse* traverse) +{ + if (this->type_ != NULL) + return Type::traverse(this->type_, traverse); + return TRAVERSE_CONTINUE; +} + // Lower a constant expression. This is where we convert the // predeclared constant iota into an integer value. diff --git a/gcc/go/gofrontend/statements.cc b/gcc/go/gofrontend/statements.cc index 99ed665..45e45a3 100644 --- a/gcc/go/gofrontend/statements.cc +++ b/gcc/go/gofrontend/statements.cc @@ -318,6 +318,9 @@ Temporary_statement::get_decl() const int Temporary_statement::do_traverse(Traverse* traverse) { + if (this->type_ != NULL + && this->traverse_type(traverse, this->type_) == TRAVERSE_EXIT) + return TRAVERSE_EXIT; if (this->init_ == NULL) return TRAVERSE_CONTINUE; else |