Exception handling problems with MinGW64 GCC 4.8.0 with SEH

Martin Corino mcorino@remedy.nl
Tue Mar 26 14:49:00 GMT 2013


Hi,

We've found a problem with the 64bit MinGW64 win32-seh build of the
GCC-4.8.0 compilers we downloaded from the mingwbuilds site.

We're building a quite extensive cross-platform C++ framework which
implements a lot of separate functionalities in shared libraries/DLLs
and which also extensively uses exceptions.

What we found is that with the win32-seh versions of the compiler we
were not able to catch an exception thrown from within one of the
framework DLLs in the application code using that DLL. I.e. the
following did not work:

<pre>
try {
 ... // some code calling methods exported from  DLL
}
catch (const <fully scoped exception typename>& ex) {
 ...
}
</pre>

Catching with a catch-all construct ('catch (...)') however did work.

This is code which works flawlessly on Linux as well as with the MinGW32
GCC 4.6.2 compiler.
As it turns out it also works with the MinGW64 GCC 4.8.0 win32-sjlj
version of the compilers from mingwbuilds (both for 32bit as well as for
64bit).

Is this a known problem we missed mentioned somewhere?

regards,
Martin Corino.



More information about the Gcc-help mailing list