DOCGroup / ACE_TAO

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

Throwing exceptions i.e. 'TAO_3_1_2::CORBA::MARSHAL' which is not derived from 'std::exception' #2158

Closed ClausKlein closed 10 months ago

ClausKlein commented 10 months ago

Version

ACE+TAO-7_1_2

Host machine and operating system

Linux

Target machine and operating system (if different from host)

Compiler name and version (including patch level)

llvm-15

The $ACE_ROOT/ace/config.h file

#define ACE_HAS_VERSIONED_NAMESPACE 1
#define ACE_MONITOR_FRAMEWORK 0
#include "ace/config-linux.h"

The $ACE_ROOT/include/makeinclude/platform_macros.GNU file

ssl=0
bzip2=0
zlib=1
valgrind=0
valgrind_keep_debuginfo=0
acetaompc=1
cross=0
debug=0
inline=1
optimize=1
buildbits=64
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
CCFLAGS+=-std=c++17

if you use a link to a platform-specific file, simply state which one (unless this isn't used in this case, e.g., with Microsoft Visual C++)

Contents of $ACE_ROOT/bin/MakeProjectCreator/config/default.features

Used by MPC when you generate your own makefiles

AREA/CLASS/EXAMPLE AFFECTED:

What example failed? What module failed to compile?

The problem effects:

Does it affect compilation, linking, or execution. Please indicate whether ACE/TAO, your application, or both are affected.

Synopsis

Brief description of the problem

Description

klein_cl:~/Workspace/cpp/axcioma/build$ builddriver run-clang-tidy -checks='-*,hicpp-exception-baseclass'
builddriver executing: 'run-clang-tidy -checks=-*,hicpp-exception-baseclass'
Compilation SUCCEED in 3.897357 seconds
Number of warnings: 6

WarningErrorEntry(path='/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp', lineno='193', severity='warning', message="throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]", column='11')
WarningErrorEntry(path='/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp', lineno='201', severity='warning', message="throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]", column='11')
WarningErrorEntry(path='/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp', lineno='219', severity='warning', message="throwing an exception whose type 'TAO_3_1_2::CORBA::NO_MEMORY' is not derived from 'std::exception' [hicpp-exception-baseclass]", column='11')
WarningErrorEntry(path='/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp', lineno='245', severity='warning', message="throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]", column='11')
WarningErrorEntry(path='/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp', lineno='253', severity='warning', message="throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]", column='11')
WarningErrorEntry(path='/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp', lineno='271', severity='warning', message="throwing an exception whose type 'TAO_3_1_2::CORBA::NO_MEMORY' is not derived from 'std::exception' [hicpp-exception-baseclass]", column='11')

klein_cl:~/Workspace/cpp/axcioma/build$

Repeat by

What you did to get the error; include test program or session transcript if at all possible.

Sample fix/ workaround

If available

jwillemsen commented 10 months ago

TAO implements the IDL to C++ language mapping (see https://www.omg.org/spec/CPP). That language mapping doesn't use anything from the standard library, exceptions are not derived from std::exception with this language mapping.

ClausKlein commented 10 months ago

I am using AXCIOMA_v2.4.0 -> taox11 with ACE+TAO-7_1_2

jwillemsen commented 10 months ago

TAO_3_1_2::CORBA::MARSHAL is a TAO exception, not TAOX11.

ClausKlein commented 10 months ago

FYI:

clang-tidy-14 --use-color -checks=-*,hicpp-exception-baseclass -p=/home/klein_cl/Workspace/cpp/axcioma/build /home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp
/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp:193:11: warning: throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]
    throw TAO_CORBA::MARSHAL ();
    ~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/klein_cl/Workspace/cpp/axcioma/taox11/tao/x11/tao_corba.h:21:3: note: expanded from macro 'TAO_CORBA'
  TAO_VERSIONED_NAMESPACE_NAME::CORBA
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:41:40: note: expanded from macro 'TAO_VERSIONED_NAMESPACE_NAME'
#  define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_MICRO_VERSION)
                                       ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:40:64: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
                                                               ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:39:69: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) TAO_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
                                                                    ^
note: expanded from here
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:200:3: note: type defined here
  TAO_SYSTEM_EXCEPTION(MARSHAL)          // error marshaling param/result
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:176:5: note: expanded from macro 'TAO_SYSTEM_EXCEPTION'
    class TAO_Export name : public SystemException \
    ^
/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp:201:11: warning: throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]
    throw TAO_CORBA::MARSHAL ();
    ~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/klein_cl/Workspace/cpp/axcioma/taox11/tao/x11/tao_corba.h:21:3: note: expanded from macro 'TAO_CORBA'
  TAO_VERSIONED_NAMESPACE_NAME::CORBA
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:41:40: note: expanded from macro 'TAO_VERSIONED_NAMESPACE_NAME'
#  define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_MICRO_VERSION)
                                       ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:40:64: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
                                                               ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:39:69: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) TAO_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
                                                                    ^
note: expanded from here
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:200:3: note: type defined here
  TAO_SYSTEM_EXCEPTION(MARSHAL)          // error marshaling param/result
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:176:5: note: expanded from macro 'TAO_SYSTEM_EXCEPTION'
    class TAO_Export name : public SystemException \
    ^
/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp:219:11: warning: throwing an exception whose type 'TAO_3_1_2::CORBA::NO_MEMORY' is not derived from 'std::exception' [hicpp-exception-baseclass]
    throw TAO_CORBA::NO_MEMORY ();
    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/klein_cl/Workspace/cpp/axcioma/taox11/tao/x11/tao_corba.h:21:3: note: expanded from macro 'TAO_CORBA'
  TAO_VERSIONED_NAMESPACE_NAME::CORBA
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:41:40: note: expanded from macro 'TAO_VERSIONED_NAMESPACE_NAME'
#  define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_MICRO_VERSION)
                                       ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:40:64: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
                                                               ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:39:69: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) TAO_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
                                                                    ^
note: expanded from here
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:193:3: note: type defined here
  TAO_SYSTEM_EXCEPTION(NO_MEMORY)        // memory allocation failure
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:176:5: note: expanded from macro 'TAO_SYSTEM_EXCEPTION'
    class TAO_Export name : public SystemException \
    ^
/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp:245:11: warning: throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]
    throw TAO_CORBA::MARSHAL ();
    ~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/klein_cl/Workspace/cpp/axcioma/taox11/tao/x11/tao_corba.h:21:3: note: expanded from macro 'TAO_CORBA'
  TAO_VERSIONED_NAMESPACE_NAME::CORBA
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:41:40: note: expanded from macro 'TAO_VERSIONED_NAMESPACE_NAME'
#  define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_MICRO_VERSION)
                                       ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:40:64: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
                                                               ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:39:69: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) TAO_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
                                                                    ^
note: expanded from here
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:200:3: note: type defined here
  TAO_SYSTEM_EXCEPTION(MARSHAL)          // error marshaling param/result
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:176:5: note: expanded from macro 'TAO_SYSTEM_EXCEPTION'
    class TAO_Export name : public SystemException \
    ^
/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp:253:11: warning: throwing an exception whose type 'TAO_3_1_2::CORBA::MARSHAL' is not derived from 'std::exception' [hicpp-exception-baseclass]
    throw TAO_CORBA::MARSHAL ();
    ~~~~~~^~~~~~~~~~~~~~~~~~~~~
/home/klein_cl/Workspace/cpp/axcioma/taox11/tao/x11/tao_corba.h:21:3: note: expanded from macro 'TAO_CORBA'
  TAO_VERSIONED_NAMESPACE_NAME::CORBA
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:41:40: note: expanded from macro 'TAO_VERSIONED_NAMESPACE_NAME'
#  define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_MICRO_VERSION)
                                       ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:40:64: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
                                                               ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:39:69: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) TAO_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
                                                                    ^
note: expanded from here
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:200:3: note: type defined here
  TAO_SYSTEM_EXCEPTION(MARSHAL)          // error marshaling param/result
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:176:5: note: expanded from macro 'TAO_SYSTEM_EXCEPTION'
    class TAO_Export name : public SystemException \
    ^
/home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerC.cpp:271:11: warning: throwing an exception whose type 'TAO_3_1_2::CORBA::NO_MEMORY' is not derived from 'std::exception' [hicpp-exception-baseclass]
    throw TAO_CORBA::NO_MEMORY ();
    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/klein_cl/Workspace/cpp/axcioma/taox11/tao/x11/tao_corba.h:21:3: note: expanded from macro 'TAO_CORBA'
  TAO_VERSIONED_NAMESPACE_NAME::CORBA
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:41:40: note: expanded from macro 'TAO_VERSIONED_NAMESPACE_NAME'
#  define TAO_VERSIONED_NAMESPACE_NAME TAO_MAKE_VERSIONED_NAMESPACE_NAME(TAO_MAJOR_VERSION,TAO_MINOR_VERSION,TAO_MICRO_VERSION)
                                       ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:40:64: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
                                                               ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/Versioned_Namespace.h:39:69: note: expanded from macro 'TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL'
#  define TAO_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) TAO_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
                                                                    ^
note: expanded from here
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:193:3: note: type defined here
  TAO_SYSTEM_EXCEPTION(NO_MEMORY)        // memory allocation failure
  ^
/home/klein_cl/Workspace/cpp/axcioma/ACE/TAO/tao/SystemException.h:176:5: note: expanded from macro 'TAO_SYSTEM_EXCEPTION'
    class TAO_Export name : public SystemException \
    ^
124 warnings generated.
Suppressed 118 warnings (47 in non-user code, 71 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
clang-tidy-14 --use-color -checks=-*,hicpp-exception-baseclass -p=/home/klein_cl/Workspace/cpp/axcioma/build /home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/ConsumerS.cpp
166 warnings generated.
Suppressed 166 warnings (51 in non-user code, 115 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
clang-tidy-14 --use-color -checks=-*,hicpp-exception-baseclass -p=/home/klein_cl/Workspace/cpp/axcioma/build /home/klein_cl/Workspace/cpp/axcioma/build/_deps/callback_quoter-build/NotifierS.cpp
172 warnings generated.
Suppressed 172 warnings (53 in non-user code, 119 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.