diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_state_argument.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_state_argument.cpp | 23 |
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 ??? |