aboutsummaryrefslogtreecommitdiff
path: root/gcc/go/gofrontend/gogo.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/go/gofrontend/gogo.cc')
-rw-r--r--gcc/go/gofrontend/gogo.cc21
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