[omniORB] [External] Re: OmniORB-4.2.2 compiled with gcc8 and C++14 leads into crash

Duncan Grisby duncan at grisby.org
Fri Mar 29 14:13:47 GMT 2019


On Fri, 2019-03-29 at 13:37 +0000, Prasath_Palaniappan at amat.com wrote:

> > You need to figure out why your build broke the exception handling:
>  
> Dynamic exception specification throw(type) is deprecated in C++17 
> https://en.cppreference.com/w/cpp/language/except_spec
>  
> When compiled the OmniORB-4.2.2 source with “gcc8 and C++17”, we
> resolved the compilation errors related to dynamic exception
> specifications those are unsupported in C++17. Mentioned few headers
> below,
> virtual void visit(const char* value,Source source) throw (BadParam)
> = 0;

That is a totally unrelated area of the code. Those throw
specifications have already been removed from the omniORB 4.3
development branch, but they cannot be removed from 4.2.x because that
could break binary library compatibility in some environments.

Whether you have removed those throw specifications from your code or
not will have absolutely no bearing on the problem you are seeing,
because your situation does not involve those functions or those
exceptions. The functions and exceptions involved in the error you see
do not have throw specifications.

omniORB's code is throwing giopStream::CommFailure. Higher up the call
chain there are exception handlers for that, and your own testing shows
that the exceptions are caught and handled fine when the code is
compiled with a different compiler. For some reason it does not work
with your newer compiler. I don't know why not, but it is not a problem
in omniORB's code. It is a problem in your compiler or runtime
environment.

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list