diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_operation.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_operation.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_operation.cpp b/TAO/TAO_IDL/be/be_operation.cpp index c7339340121..09b84b5612f 100644 --- a/TAO/TAO_IDL/be/be_operation.cpp +++ b/TAO/TAO_IDL/be/be_operation.cpp @@ -212,7 +212,15 @@ be_operation::gen_client_stubs (void) // Are we returning a pointer to value? i.e., is the type // variable? If it is, we must tell the stub what is the size of // the top level structure - if (bt->size_type () == be_decl::VARIABLE) + be_type *prim; + if (bt->node_type () == AST_Decl::NT_typedef) + { + be_typedef *tdef = be_typedef::narrow_from_decl (bt); + prim = tdef->primitive_base_type (); + } + else + prim = bt; + if (prim->size_type () == be_decl::VARIABLE) { switch (bt->node_type ()) { |