summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_root/root.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_root/root.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_root/root.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
index e4edbad1c37..800e5cd83e5 100644
--- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_root/root.cpp
@@ -201,6 +201,24 @@ int be_visitor_root::visit_root (be_root *node)
}
}
+ status = 0;
+ ctx = *this->ctx_;
+
+ if (this->ctx_->state () == TAO_CodeGen::TAO_ROOT_CH)
+ {
+ be_visitor_traits visitor (&ctx);
+ status = node->accept (&visitor);
+
+ if (status == -1)
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "(%N:%l) be_visitor_root::"
+ "visit_root - "
+ "failed to generate traits\n"),
+ -1);
+ }
+ }
+
// The next thing we need to do is make one more pass thru the entire tree
// and generate code for all the <<= and >>= operators for all the
// user-defined types.