[omniORB] Tripping over omniORB non-ANSI code using Sun nativ e v5.0 compiler

Bjorn Wennberg bjornw@tihlde.org
15 Jul 1999 12:16:08 +0200


"Smith, Norman" <Norman_Smith@bmc.com> writes:

> I have done some research into the source code, and the problem seems to
> hinge around the destructor definition in class "o2be_sequence_chain" in
> file "<top>/src/tool/omniidl2/omniORB2_be/o2be.h". Removing the virtual
> declaration in its entirety solves the SLIP.DELETER problem, and allows
> omniidl2 to build. 
> 
> Alas, after this the compiler gets what appears to be a SIGSEGV (Signal=11)
> violation and aborts. I don't know if it has to do with the removal of the
> aforementioned virtual destructor or not. I've tried several variations on
> the destructor for that class (making it non-virtual, adding a line of code
> into the body, etc.), but the only thing that seems to satisfy the
> SLIP.DELETER problem is to remove it entirely.

To me this sounds like a compiler bug.

I think your compiler has a bug using virtual inheritance.

Removing the 'virtual' before the dtor in o2be_name should not cause
any harm since its base class, AST_Decl, has virtual dtor and thus
all dtors in the derived class will be automatically declared as virtual.
I've tested that for egcs and vc++ 6.0.

I'm not that familliar with the code to say what will happen if you
remove the virtual inheritance though :-/

bjornw>