summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_state_argument.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_state_argument.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_state_argument.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/be/be_state_argument.cpp b/TAO/TAO_IDL/be/be_state_argument.cpp
index ed428d30a66..514ff81188b 100644
--- a/TAO/TAO_IDL/be/be_state_argument.cpp
+++ b/TAO/TAO_IDL/be/be_state_argument.cpp
@@ -2207,6 +2207,29 @@ be_state_argument::gen_code (be_type *bt, be_decl *d, be_type *type)
break;
} // end switch direction
break;
+ case AST_Decl::NT_native:
+ {
+ switch (cg->state ())
+ {
+ case TAO_CodeGen::TAO_ARGUMENT_CH:
+ // to keep the MSVC++ compiler happy
+ *os << bt->nested_type_name (bif) << " " << arg->local_name () <<
+ ", ";
+ break;
+ case TAO_CodeGen::TAO_ARGUMENT_CS:
+ case TAO_CodeGen::TAO_ARGUMENT_SH:
+ *os << bt->name () << arg->local_name () << ", ";
+ break;
+ case TAO_CodeGen::TAO_ARGUMENT_UPCALL_SS:
+ case TAO_CodeGen::TAO_ARGUMENT_DOCALL_CS:
+ *os << "env.exception (new CORBA::MARSHAL " <<
+ "(CORBA::COMPLETED_NO));" << nl;
+ break;
+ default:
+ break;
+ }
+ }
+ break;
case AST_Decl::NT_except: // type is an exception
{
// XXXASG TODO: is this allowed ???