Extend NVC workaround for no-optimize-sibling-calls

__attribute__((optimize("no-optimize-sibling-calls"))) is not supported
for at least some versions of NVC (nVidia HPC compiler), and this case
has a workaround in gtest-port.h. Actually, this is true not just for
NVC (that defines __NVCOMPILER), but for other EDG-based compilers as
well, for example, LCC.

So the correct check here would be not just for __NVCOMPILER, but
for __EDG__ (NVC defines this too, because it is based on EDG).

This commit does this.
This commit is contained in:
makise-homura 2024-08-22 21:24:31 +03:00
parent df6fa41e1b
commit 24699b4926

View File

@ -897,7 +897,7 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
// Ask the compiler not to perform tail call optimization inside
// the marked function.
#define GTEST_NO_TAIL_CALL_ __attribute__((disable_tail_calls))
#elif defined(__GNUC__) && !defined(__NVCOMPILER)
#elif defined(__GNUC__) && !defined(__EDG__)
#define GTEST_NO_TAIL_CALL_ \
__attribute__((optimize("no-optimize-sibling-calls")))
#else