diff options
Diffstat (limited to 'gcc/go/gofrontend/gogo.cc')
-rw-r--r-- | gcc/go/gofrontend/gogo.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index cdb8b18..579b8a3 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -7912,6 +7912,21 @@ Bindings::traverse(Traverse* traverse, bool is_global) } } + // Traverse function declarations when needed. + if ((traverse_mask & Traverse::traverse_func_declarations) != 0) + { + for (Bindings::const_declarations_iterator p = this->begin_declarations(); + p != this->end_declarations(); + ++p) + { + if (p->second->is_function_declaration()) + { + if (traverse->function_declaration(p->second) == TRAVERSE_EXIT) + return TRAVERSE_EXIT; + } + } + } + return TRAVERSE_CONTINUE; } @@ -8221,6 +8236,12 @@ Traverse::type(Type*) go_unreachable(); } +int +Traverse::function_declaration(Named_object*) +{ + go_unreachable(); +} + // Class Statement_inserter. void |