1// { dg-do compile } 2// { dg-options "-fpermissive" } 3typedef long unsigned int size_t; 4 typedef bool _CORBA_Boolean; 5 typedef unsigned int _CORBA_ULong; 6 template <class T> class _CORBA_Sequence { 7 public: typedef _CORBA_Sequence<T> T_seq; 8 inline T_seq &operator= (const T_seq &s) { 9 for (unsigned long i=0; 10 i < pd_len; 11 i++) { 12 } 13 } 14 _CORBA_ULong pd_len; 15 }; 16 template <class T> class _CORBA_Unbounded_Sequence : public _CORBA_Sequence<T> { 17 inline _CORBA_Unbounded_Sequence_WChar() { // { dg-warning "forbids declaration" } 18 } 19 }; 20 class _CORBA_ObjRef_Var_base { 21 }; 22 template <class T, class T_Helper> class _CORBA_ObjRef_Var : public _CORBA_ObjRef_Var_base { 23 public: typedef T* ptr_t; 24 typedef T* T_ptr; 25 inline _CORBA_ObjRef_Var() : pd_objref(T_Helper::_nil()) { 26 } 27 inline _CORBA_ObjRef_Var(T_ptr p) : pd_objref(p) { 28 } 29 private: T_ptr pd_objref; 30 }; 31 class omniLocalIdentity; 32 class omniObjRef { 33 }; 34 class omniServant { 35 public: virtual ~omniServant(); 36 virtual void* _ptrToInterface(const char* repoId); 37 }; 38 namespace CORBA { 39 class NVList { 40 }; 41 class Object { 42 }; 43 struct StructMember { 44 }; 45 class StructMemberSeq : public _CORBA_Unbounded_Sequence< StructMember > { 46 }; 47 class _objref_IRObject : public virtual ::CORBA::Object, public virtual omniObjRef { 48 }; 49 class _impl_IRObject : public virtual omniServant { 50 }; 51 class _objref_Container; 52 typedef _objref_Container* Container_ptr; 53 class _impl_Contained : public virtual _impl_IRObject { 54 }; 55 class _objref_ExceptionDef; 56 typedef _objref_ExceptionDef* ExceptionDef_ptr; 57 class ExceptionDef_Helper { 58 public: typedef ExceptionDef_ptr _ptr_type; 59 static _ptr_type _nil(); 60 }; 61 typedef _CORBA_ObjRef_Var<_objref_ExceptionDef, ExceptionDef_Helper> ExceptionDef_var; 62 class Container { 63 public: typedef Container_ptr _ptr_type; 64 static const char* _PD_repoId; 65 }; 66 class _objref_Container : public virtual _objref_IRObject { 67 ExceptionDef_ptr create_exception(const char* id, const char* name, const char* version, const ::CORBA::StructMemberSeq& members); 68 }; 69 class _impl_Container : public virtual _impl_IRObject { 70 public: virtual ~_impl_Container(); 71 virtual ExceptionDef_ptr create_exception(const char* id, const char* name, const char* version, const ::CORBA::StructMemberSeq& members) = 0; 72 }; 73 class _impl_IDLType : public virtual _impl_IRObject { 74 }; 75 class _impl_TypedefDef : public virtual _impl_Contained, public virtual _impl_IDLType { 76 }; 77 class _impl_StructDef : public virtual _impl_TypedefDef, public virtual _impl_Container { 78 }; 79 } 80 namespace PortableServer { 81 class ServantBase : public virtual omniServant { 82 }; 83 } 84 namespace POA_CORBA { 85 class IRObject : public virtual CORBA::_impl_IRObject, public virtual ::PortableServer::ServantBase { 86 }; 87 class Contained : public virtual CORBA::_impl_Contained, public virtual IRObject { 88 }; 89 class Container : public virtual CORBA::_impl_Container, public virtual IRObject { 90 }; 91 class IDLType : public virtual CORBA::_impl_IDLType, public virtual IRObject { 92 }; 93 class TypedefDef : public virtual CORBA::_impl_TypedefDef, public virtual Contained, public virtual IDLType { 94 }; 95 class StructDef : public virtual CORBA::_impl_StructDef, public virtual TypedefDef, public virtual Container { 96 public: virtual ~StructDef(); 97 }; 98 } 99 namespace omni { 100 class omniOrbPOA; 101 class giopAddress; 102 } 103 class omniCallDescriptor { 104 public: typedef void (*LocalCallFn)(omniCallDescriptor*, omniServant*); 105 inline omniCallDescriptor(LocalCallFn lcfn, const char* op_, int op_len_, _CORBA_Boolean oneway, const char*const* user_excns_, int n_user_excns_, _CORBA_Boolean is_upcall_) : pd_localCall(lcfn), pd_op(op_), pd_oplen(op_len_), pd_user_excns(user_excns_), pd_n_user_excns(n_user_excns_), pd_is_oneway(oneway), pd_is_upcall(is_upcall_), pd_contains_values(0), pd_first_address_used(0), pd_current_address(0), pd_objref(0), pd_poa(0), pd_localId(0), pd_deadline_secs(0), pd_deadline_nanosecs(0) { 106 } 107 private: LocalCallFn pd_localCall; 108 const char* pd_op; 109 size_t pd_oplen; 110 const char*const* pd_user_excns; 111 int pd_n_user_excns; 112 _CORBA_Boolean pd_is_oneway; 113 _CORBA_Boolean pd_is_upcall; 114 _CORBA_Boolean pd_contains_values; 115 const omni::giopAddress* pd_first_address_used; 116 const omni::giopAddress* pd_current_address; 117 omniObjRef* pd_objref; 118 omni::omniOrbPOA* pd_poa; 119 omniLocalIdentity* pd_localId; 120 unsigned long pd_deadline_secs; 121 unsigned long pd_deadline_nanosecs; 122 }; 123 class _0RL_cd_7963219a43724a61_f2000000 : public omniCallDescriptor { 124 public: inline _0RL_cd_7963219a43724a61_f2000000(LocalCallFn lcfn,const char* op_,size_t oplen,_CORBA_Boolean upcall=0): omniCallDescriptor(lcfn, op_, oplen, 0, _user_exns, 0, upcall) { 125 } 126 static const char* const _user_exns[]; 127 const char* arg_0; 128 const char* arg_1; 129 const char* arg_2; 130 const CORBA::StructMemberSeq* arg_3; 131 CORBA::ExceptionDef_var result; 132 }; 133 static void _0RL_lcfn_7963219a43724a61_03000000(omniCallDescriptor* cd, omniServant* svnt) { 134 _0RL_cd_7963219a43724a61_f2000000* tcd = (_0RL_cd_7963219a43724a61_f2000000*)cd; 135 CORBA::_impl_Container* impl = (CORBA::_impl_Container*) svnt->_ptrToInterface(CORBA::Container::_PD_repoId); 136 tcd->result = impl->create_exception(tcd->arg_0, tcd->arg_1, tcd->arg_2, *tcd->arg_3); 137 } 138 CORBA::ExceptionDef_ptr CORBA::_objref_Container::create_exception(const char* id, const char* name, const char* version, const ::CORBA::StructMemberSeq& members) { 139 _0RL_cd_7963219a43724a61_f2000000 _call_desc(_0RL_lcfn_7963219a43724a61_03000000, "create_exception", 17); 140 } 141 POA_CORBA::StructDef::~StructDef() { 142 } 143