mirror of
https://github.com/google/googletest.git
synced 2025-12-21 19:14:55 +08:00
Merge branch 'google:main' into master
This commit is contained in:
commit
8940418b4d
@ -94,7 +94,7 @@ include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
# Specify the commit you depend on and update it regularly.
|
||||
URL https://github.com/google/googletest/archive/609281088cfefc76f9d0ce82e1ff6c30cc3591e5.zip
|
||||
URL https://github.com/google/googletest/archive/e2239ee6043f73722e7aa812a459f54a28552929.zip
|
||||
)
|
||||
# For Windows: Prevent overriding the parent project's compiler/linker settings
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
|
||||
@ -789,6 +789,20 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
|
||||
# define GTEST_NO_INLINE_
|
||||
#endif
|
||||
|
||||
#if defined(__clang__)
|
||||
// Nested ifs to avoid triggering MSVC warning.
|
||||
#if __has_attribute(disable_tail_calls)
|
||||
// Ask the compiler not to perform tail call optimization inside
|
||||
// the marked function.
|
||||
#define GTEST_NO_TAIL_CALL_ __attribute__((disable_tail_calls))
|
||||
#endif
|
||||
#elif __GNUC__
|
||||
#define GTEST_NO_TAIL_CALL_ \
|
||||
__attribute__((optimize("no-optimize-sibling-calls")))
|
||||
#else
|
||||
#define GTEST_NO_TAIL_CALL_
|
||||
#endif
|
||||
|
||||
// _LIBCPP_VERSION is defined by the libc++ library from the LLVM project.
|
||||
#if !defined(GTEST_HAS_CXXABI_H_)
|
||||
# if defined(__GLIBCXX__) || (defined(_LIBCPP_VERSION) && !defined(_MSC_VER))
|
||||
|
||||
@ -623,7 +623,8 @@ class GTEST_API_ UnitTestImpl {
|
||||
// For example, if Foo() calls Bar(), which in turn calls
|
||||
// CurrentOsStackTraceExceptTop(1), Foo() will be included in the
|
||||
// trace but Bar() and CurrentOsStackTraceExceptTop() won't.
|
||||
std::string CurrentOsStackTraceExceptTop(int skip_count) GTEST_NO_INLINE_;
|
||||
std::string CurrentOsStackTraceExceptTop(int skip_count)
|
||||
GTEST_NO_INLINE_ GTEST_NO_TAIL_CALL_;
|
||||
|
||||
// Finds and returns a TestSuite with the given name. If one doesn't
|
||||
// exist, creates one and returns it.
|
||||
|
||||
@ -6306,8 +6306,8 @@ void UnitTestImpl::UnshuffleTests() {
|
||||
// For example, if Foo() calls Bar(), which in turn calls
|
||||
// GetCurrentOsStackTraceExceptTop(..., 1), Foo() will be included in
|
||||
// the trace but Bar() and GetCurrentOsStackTraceExceptTop() won't.
|
||||
std::string GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/,
|
||||
int skip_count) {
|
||||
GTEST_NO_INLINE_ GTEST_NO_TAIL_CALL_ std::string
|
||||
GetCurrentOsStackTraceExceptTop(UnitTest* /*unit_test*/, int skip_count) {
|
||||
// We pass skip_count + 1 to skip this wrapper function in addition
|
||||
// to what the user really wants to skip.
|
||||
return GetUnitTestImpl()->CurrentOsStackTraceExceptTop(skip_count + 1);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user