[omniORB] DynAny trouble building latest snapshot

bjorn rohde jensen bjensen@mdsproteomics.dk
Thu, 18 Oct 2001 20:55:05 +0200


Hi,

 I have just build the latest few hours old snapshot on my mandrake 8.0
box
using gcc 2.95.3, which, much to my suprise, required hacking around a
bit
in the DynAny code to resolve a few ambiguities....

g++ -c -g -Wall -Wno-unused -I.. -I./.. -I../include -I./../include
-D_REENTRANT -DUSE_omniORB_logStream -D_OMNIORB_DYNAMIC_LIBRARY
-DUnixArchitecture -I. -I. -I../../../../include -D__x86__ -D__linux__
-D__OSVERSION__=2 -o static/dynAny.o dynAny.cc
dynAny.cc: In method `class DynamicAny::DynAny *
omni::DynFixedImpl::copy()':
dynAny.cc:1052: request for member `_NP_decrRefCount' is ambiguous
../../../../include/omniORB4/CORBA_Object.h:110: candidates are: void
CORBA::Object::()
dynAny.cc:300:                 void
omni::DynAnyImplBase::_NP_decrRefCount()
dynAny.cc: In method `class DynamicAny::DynAny *
omni::DynEnumImpl::copy()':
dynAny.cc:1166: request for member `_NP_decrRefCount' is ambiguous
../../../../include/omniORB4/CORBA_Object.h:110: candidates are: void
CORBA::Object::_NP_decrRefCount()
dynAny.cc:300:                 void
omni::DynAnyImplBase::_NP_decrRefCount()
dynAny.cc: In method `class DynamicAny::DynAny *
omni::DynStructImpl::copy()':
dynAny.cc:2370: request for member `_NP_decrRefCount' is ambiguous
../../../../include/omniORB4/CORBA_Object.h:110: candidates are: void
CORBA::Object::_NP_decrRefCount()
dynAny.cc:300:                 void
omni::DynAnyImplBase::_NP_decrRefCount()
dynAny.cc: In method `class DynamicAny::DynAny *
omni::DynUnionEnumDisc::copy()':
dynAny.cc:2864: request for member `_NP_decrRefCount' is ambiguous
../../../../include/omniORB4/CORBA_Object.h:110: candidates are: void
CORBA::Object::_NP_decrRefCount()
dynAny.cc:300:                 void
omni::DynAnyImplBase::_NP_decrRefCount()
dynAny.cc: In method `class DynamicAny::DynAny *
omni::DynSequenceImpl::copy()':
dynAny.cc:3921: request for member `_NP_decrRefCount' is ambiguous
../../../../include/omniORB4/CORBA_Object.h:110: candidates are: void
CORBA::Object::_NP_decrRefCount()
dynAny.cc:300:                 void
omni::DynAnyImplBase::_NP_decrRefCount()
dynAny.cc: In method `class DynamicAny::DynAny *
omni::DynArrayImpl::copy()':
dynAny.cc:4237: request for member `_NP_decrRefCount' is ambiguous
../../../../include/omniORB4/CORBA_Object.h:110: candidates are: void
CORBA::Object::_NP_decrRefCount()
dynAny.cc:300:                 void
omni::DynAnyImplBase::_NP_decrRefCount()
make[3]: *** [static/dynAny.o] Error 1
make[3]: Leaving directory `/usr/local/omni/src/lib/omniORB/dynamic'


The very lovely inheritance graphs, if that is the word for it, which
gcc finds
ambiguous look something like this:

_NP_decrRefCount()                              CORBA_OBJECT
                                                     |
                                                  DynAny
                                                /        \
_NP_decrRefCount()                      DynAnyImplBase    \
                                              |          DynFixed
                                         DynAnyImpl        /
                                               \          /
                                                DynFixedImpl


 I am rather puzzled by g++'s error message, the overloading does not
look
ambiguous to me, so to shut up g++ i qualified the call selecting
DynAnyImplBase::_NP_decrRefCount()
I suppose, i will find out, if that is right or wrong...

Yours sincerely,

Bjorn R. Jensen