DOCGroup / ACE_TAO

ACE and TAO
https://www.dre.vanderbilt.edu/~schmidt/TAO.html
706 stars 381 forks source link

bcc32 has problems compiling IDL_Test/Versioned_Namespace test #1939

Open jwillemsen opened 2 years ago

jwillemsen commented 2 years ago

Version

Using ace6tao2 branch the bcc32 compiler (Borland C++ Builder) has a problem compiling the Versioned_Namespace test

bcc32   -O1 -DNDEBUG   -tWM -q -tWR -tWD -a8      -DMPC_LIB_MODIFIER=\"_br\"   -DWIN32   -D_WINDOWS   -I"X:\BUILD\DOC_ROOT\ACE"   -I"..\..\.."      -D_NO_VCL -w-rvl -w-rch -w-ccc -w-obs -w-aus -w-pia -w-inl -w-mls -c -nRelease\IDL_Test_Versioned_Namespace\ .\TestVersionedNamespaceC.cpp
.\TestVersionedNamespaceC.cpp:

Error E2038 .\TestVersionedNamespaceC.inl 34: Cannot declare or define 'M1::V::V()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.inl 38: Cannot declare or define 'M1::V::_tao_obv_static_repository_id()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 129: Cannot declare or define 'M1::LI::LI()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 132: Cannot declare or define '~M1::LI::LI()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 138: Cannot declare or define 'M1::LI::_narrow(CORBA::Object *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 146: Cannot declare or define 'M1::LI::_unchecked_narrow(CORBA::Object *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 153: Cannot declare or define 'M1::LI::_nil()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 159: Cannot declare or define 'M1::LI::_duplicate(M1::LI *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 169: Cannot declare or define 'M1::LI::_tao_release(M1::LI *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 175: Cannot declare or define 'M1::LI::_is_a(const char *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 200: Cannot declare or define 'M1::LI::_interface_repository_id() const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 206: Cannot declare or define 'M1::LI::marshal(TAO_OutputCDR &)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 297: Cannot declare or define 'M1::V::_downcast(CORBA::ValueBase *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 303: Cannot declare or define 'M1::V::_tao_obv_repository_id() const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 309: Cannot declare or define 'M1::V::_tao_obv_truncatable_repo_ids(ACE_Vector<ACE_CString,32> &) const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 315: Cannot declare or define 'M1::V::_tao_type() const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 320: Cannot declare or define '~M1::V::V()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 324: Cannot declare or define 'M1::V::_tao_marshal_v(TAO_OutputCDR &) const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 330: Cannot declare or define 'M1::V::_tao_unmarshal_v(TAO_InputCDR &)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 336: Cannot declare or define 'M1::V::_tao_match_formal_type(int) const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 345: Cannot declare or define 'M1::V::_tao_unmarshal(TAO_InputCDR &,M1::V * &)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 387: Cannot declare or define 'M1::V_init::V_init()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 391: Cannot declare or define '~M1::V_init::V_init()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 396: Cannot declare or define 'M1::V_init::_downcast(CORBA::ValueFactoryBase *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 402: Cannot declare or define 'M1::V_init::tao_repository_id()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 408: Cannot declare or define 'M1::V_init::create_for_unmarshal()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 421: Cannot declare or define 'OBV_M1::V::V()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 428: Cannot declare or define 'OBV_M1::V::V(const char *,const M1::S1 &,M1::LI *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 436: Cannot declare or define '~OBV_M1::V::V()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 440: Cannot declare or define 'OBV_M1::V::_copy_value()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 459: Cannot declare or define 'OBV_M1::V::valString(char *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 466: Cannot declare or define 'OBV_M1::V::valString(const char *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 474: Cannot declare or define 'OBV_M1::V::valString(const CORBA::String_var &)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 481: Cannot declare or define 'OBV_M1::V::valString() const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 490: Cannot declare or define 'OBV_M1::V::valStruct(const M1::S1 &)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 496: Cannot declare or define 'OBV_M1::V::valStruct() const' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 502: Cannot declare or define 'OBV_M1::V::valStruct()' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 511: Cannot declare or define 'OBV_M1::V::valLocalIface(M1::LI *)' here: wrong namespace
Error E2038 .\TestVersionedNamespaceC.cpp 519: Cannot declare or define 'OBV_M1::V::valLocalIface() const' here: wrong namespace
mitza-oci commented 2 years ago

Does it work with TAO 3?

jwillemsen commented 2 years ago

bcc32 doesn't support C++11 so TAO3 can't be used with that compiler, only TAO2

mitza-oci commented 2 years ago

So this compiler requires all uses of Scope::Class::Function changed to just Class::Function within a block of namespace Scope {...}? Do we have a scoreboard build or GitHub Actions set up using this compiler?

jwillemsen commented 2 years ago

We don't have a public scoreboard build, sometimes I run an internal build. Not found time yet to find the exact cause

mitza-oci commented 2 years ago

Does it work with an earlier release like 2.5.17 which was before the latest round of updates to valuetype code generation?

jwillemsen commented 2 years ago

Not sure, the new versioned namespaces test for valuetype fails, before that I haven't seen this error

jwillemsen commented 2 years ago

Embarcadero mentions this is a C++11 feature, the only thing that works is to use namespace A instead of A::. This could be something that more older compilers have a problem with