[omniORB] intermodule inheritance failure

Renzo Tomaselli renzo.tomaselli@tecnotp.it
Wed, 20 Jun 2001 17:05:20 +0200


Hi,
    I'm porting a fairly large environment from OmniORB 2.8 to 3.03 under NT
4.0, MSVC 6.0.
OmniORB binaries are those straight out of the box, while my IDL code is
generated automatically by Rational Rose.
I found a back-end problem when inheritance is used across modules, such as:

// file common.idl

module Common {
  interface TopObject {};
};

// file DynLoader.idl

#include "Common.idl"
module DynLoader {
  typedef Common::TopObject TopObject;
  interface Loader : DynLoader::TopObject {};
};

After running omniidl, we have in DynLoader.hh:
...
  typedef Common::_objref_TopObject _objref_TopObject;
  class _objref_Loader : public virtual _objref_TopObject
...
and in DynLoaderSK.cc:
...
DynLoader::_objref_Loader::_objref_Loader(...) :
_DynLoader__objref_TopObject(...)
...
which MSVC refuses to compile, because '_DynLoader__objref_TopObject' is not
a base or member.

Thanks,
                                             Renzo Tomaselli
---------------------------------------------------------------------------
TecnoTP s.n.c. Special Information System Design
Maso Pelauchi I38050 Ronchi Valsugana,  Trento TN  ITALY
Tel. +39 0461 773164      Fax. +39 0461 771514
e-mail: renzo.tomaselli@tecnotp.it
---------------------------------------------------------------------------