RFR: 8365231: Don't build gtest with /EHsc

Kim Barrett kbarrett at openjdk.org
Thu Aug 14 19:03:10 UTC 2025


On Thu, 14 Aug 2025 14:06:07 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:

> googletest uses C++ exceptions:
> 
> ```
> thomas at starfish:/shared/projects/openjdk/gtest/googletest-1.14.0$ ack 'throw [a-zA-Z]' | wc -l
> 68

That just says there is source code that could potentially use exceptions, depending on configuration.
It doesn't mean they are used if configured to be disabled.  After all, there's `GTEST_HAS_EXCEPTIONS`.
And spot-checking some of the uses of `throw`, they are appropriately protected by that macro.

So as long as the macro is set properly...

If not explicitly set, it gets auto-set to 1 for `defined(_MSC_VER) && defined(_CPPUNWIND)`
with a comment saying the latter is set iff exceptions are enabled. And that seems true according to
https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170
"_CPPUNWIND Defined as 1 if one or more of the [/GX (Enable Exception Handling)](https://learn.microsoft.com/en-us/cpp/build/reference/gx-enable-exception-handling?view=msvc-170), [/clr (Common Language Runtime Compilation)](https://learn.microsoft.com/en-us/cpp/build/reference/clr-common-language-runtime-compilation?view=msvc-170), or [/EH (Exception Handling Model)](https://learn.microsoft.com/en-us/cpp/build/reference/eh-exception-handling-model?view=msvc-170) compiler options are set. Otherwise, undefined."

-------------

PR Comment: https://git.openjdk.org/jdk/pull/26721#issuecomment-3189559033


More information about the build-dev mailing list