Skip to content

Update GoogleTest to v1.14.0 #65823

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Sep 12, 2023
Merged

Update GoogleTest to v1.14.0 #65823

merged 5 commits into from
Sep 12, 2023

Conversation

zeroomega
Copy link
Contributor

This PR updates GoogleTest to v1.14.0
The LLVM specific modification over the GoogleTest can be seen from: https://gist.github.com/zeroomega/fb24b1d1c4252b852200e15fda29384d
List of removed GoogleTest files can be found:
https://gist.github.com/zeroomega/54d1da74aa5df9a22bf60474adc53cab

2 additional commits are required for the GoogleTest roll. Due to a change in how GoogleTest treats uninstantiated tests, any test added by TEST_P needs an corresponding INSTANTIATE_TEST_SUITE_P, otherwise an error will be reported. However, in LLVM, sometimes INSTANTIATE_TEST_SUITE_P calls were commented out to temporarily disable tests. In this case in v1.14.0, a GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST is needed to suppress the error. This macro did not exist in v1.10.0 so the change needs to land together with v1.14.0 roll to avoid build breakages.

The roll was tested under Linux x64 and Windows x64 and pass all tests under testing. It would be great if we can tests it under more build variants and hosts in LLVM bots before landing it.

I admit I cannot create a shellscript to do the auto roll. At least it was not possible without some non-trival refactoring to LLVM's patch and move these LLVM's additional functions into gtest_port.h/cc and gmock_port.h/cc. A better approach would be upstream LLVM's changes to GoogleTest so we can just keep a vanilla GoogleTest in LLVM (using git submodule).

The GoogleTest code also uses a different code style (Google C++ style instead of LLVM style). Shall I reformat the entire GoogleTest code base?

A few gtests were disabled by commenting out the INSTANTIATE_TEST_SUITE_P
call to the tests. This causes test failures under GoogleTest v1.14.0 as
by default, every TEST_P call without a corresponding INSTANTIATE_TEST_SUITE_P
call will causes a failing test from GoogleTestVerification. This patch
adds GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST calls to mitigate
this problem.
Patch e7bd436 introduced `ImportMatrixType` and `ImportOpenCLPipe` but
didn't enable them. This cases test failures under GoogleTest v1.14.0
as uninstantiated tests needs to be explicitly allowed using
GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST call. This patch enables
`ImportMatrixType` test and disable `ImportOpenCLPipe` test
in preparation for GoogleTest v1.14.0.
This patch bumps GoogleTest to version 1.14.0
@zeroomega zeroomega requested a review from a team as a code owner September 8, 2023 23:56
@github-actions github-actions bot added the clang Clang issues not falling into any other category label Sep 8, 2023
@MaskRay
Copy link
Member

MaskRay commented Sep 9, 2023

Thank you for the change! ninja check-llvm check-clang check-clang-tools check-flang check-mlir check-lld check-polly parses.

The GoogleTest code also uses a different code style (Google C++ style instead of LLVM style). Shall I reformat the entire GoogleTest code base?

I think we should just use the upstream style.

Copy link
Collaborator

@joker-eph joker-eph left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with @MaskRay for the style: we should minimize the diff with upstream as much as possible!

Comment on lines 89 to 91
ARCHIVE DESTINATION "lib${LLVM_LIBDIR_SUFFIX}" COMPONENT llvm_gtest)
install(DIRECTORY googletest/include/gtest/ DESTINATION include/llvm-gtest/gtest/ COMPONENT llvm_gtest)
install(DIRECTORY googlemock/include/gmock/ DESTINATION include/llvm-gmock/gmock/ COMPONENT llvm_gtest)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is undoing a change made recently in 91b3ca3. Is that intentional or was your checkout just stale?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My checkout just stales. Thanks for pointing it out.

This directory contains Google Test 1.10.0, with all elements removed except for
the actual source code, to minimize the addition to the LLVM distribution.
This directory contains Google Test 1.14.0,
revision `f8d7d77c06936315286eb55f8de22cd23c188571`, with all elements removed
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't include the revision in the googlemock README.LLVM file so I'd avoid it here also for consistency (or include it in the other one as well).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parts of the googletest documentation claim to follow a "live at HEAD" philosophy, so a hash reference (here and in the other README) seems appropriate. Although using a tag, if there is one, would be preferable.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

v1.14.0 is a valid tag and f8d7d77c06936315286eb55f8de22cd23c188571 is the revision that it resolves to. The content matches the 1.14.0 source tar ball. The reason that I include a hash here is because the previous roll v1.10.0 doesn't have a valid tag and I had a bit hard time to find the correct revision for doing a diff to see what LLVM have patched. Since v1.14.0 is a valid tag, I think it is appropriate to remove the hash and just leave v1.14.0 in the doc.

Copy link
Collaborator

@pogo59 pogo59 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice to see the LLVM intrusion into googletest proper is very minimized!

IME, testing on Linux with both gcc and clang as build compilers is very helpful. With Windows/MSVC that covers the three main cases.

@@ -10,14 +10,10 @@ Cleaned up as follows:
# Remove all the unnecessary files and directories
$ rm -f CMakeLists.txt configure* Makefile* CHANGES CONTRIBUTORS README README.md .gitignore
$ rm -rf build-aux make msvc scripts test docs
$ rm -f `find . -name \*\.pump`
$ rm -f src/gmock_main.cc

# Put the license in the consistent place for LLVM.
$ mv LICENSE LICENSE.TXT

Modified as follows:
* Support for std::begin/std::end in gmock-matchers.h
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still true? If it is, it sounds like the kind of patch that ought to be made in upstream googletest. If not, please remove this line.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, gmock-matchers.h still have this part patched, see https://gist.github.com/zeroomega/fb24b1d1c4252b852200e15fda29384d#file-gtest_llvm_modification-patch-L251 . When locally test it, without the patch, LLVM unit tests will have build errors.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That seems odd, and worth following up with upstream googletest. In the meantime, I think it would be clearer to future maintainers if we did something to clearly identify the code blocks that were changed, and why. For example,
// LLVM local change to support std::begin/std::end
followed by the new code, and then the old code commented-out. That way diffs will provide clues, and merges/commits will have conflicts that someone will need to sort out properly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I put the local changes into commented blocks in change in amend commit: 2fe51a3 in this PR, please take a look.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked at that specific commit, seems fine.

$ rm -f src/gtest_main.cc

# Put the license in the consistent place for LLVM.
$ mv LICENSE LICENSE.TXT

Modified as follows:
* Added support for NetBSD, Minix and Haiku.
* Added raw_os_ostream support to include/gtest/internal/custom/gtest-printers.h.
* Added StringRef support to include/gtest/internal/custom/gtest-printers.h.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also include/gtest/gtest-message.h and include/gtest/gtest-printers.h. Probably worth saying something like "(see uses of llvm_gtest)" to help the next person doing a roll.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a description for the these two headers.

This directory contains Google Test 1.10.0, with all elements removed except for
the actual source code, to minimize the addition to the LLVM distribution.
This directory contains Google Test 1.14.0,
revision `f8d7d77c06936315286eb55f8de22cd23c188571`, with all elements removed
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Parts of the googletest documentation claim to follow a "live at HEAD" philosophy, so a hash reference (here and in the other README) seems appropriate. Although using a tag, if there is one, would be preferable.

Bump googletest to v1.14.0

This patch bumps GoogleTest to version 1.14.0
Bump googletest to v1.14.0

This patch bumps GoogleTest to version 1.14.0
@zeroomega
Copy link
Contributor Author

I have addressed all review comments in the the latest amend commits. Please take a look.

@zeroomega
Copy link
Contributor Author

I have locally tested this PR using gcc 12.2.0 on Linux x64 and MSVC from VS2019, both passed without issues. @pogo59 Do you have any concerns or suggestions before we merge this?

@pogo59
Copy link
Collaborator

pogo59 commented Sep 12, 2023

I'm happy with this, the bots will catch any environmental issues that you haven't found yet. LGTM.

@zeroomega zeroomega merged commit 54c1a9b into llvm:main Sep 12, 2023
@zeroomega
Copy link
Contributor Author

zeroomega commented Sep 12, 2023

First bot failure: https://lab.llvm.org/buildbot/#/builders/127/builds/55068

[18/126] Generating SANITIZER_TEST_OBJECTS.sanitizer_lzw_test.cpp.x86_64.o
FAILED: projects/compiler-rt/lib/sanitizer_common/tests/SANITIZER_TEST_OBJECTS.sanitizer_lzw_test.cpp.x86_64.o C:/b/slave/sanitizer-windows/build/stage1/projects/compiler-rt/lib/sanitizer_common/tests/SANITIZER_TEST_OBJECTS.sanitizer_lzw_test.cpp.x86_64.o 
cmd.exe /C "cd /D C:\b\slave\sanitizer-windows\build\stage1\projects\compiler-rt\lib\sanitizer_common\tests && C:\b\slave\sanitizer-windows\build\stage1\.\bin\clang.exe -DGTEST_NO_LLVM_SUPPORT=1 -DGTEST_HAS_RTTI=0 -IC:/b/slave/sanitizer-windows/llvm-project/llvm/../third-party/unittest/googletest/include -IC:/b/slave/sanitizer-windows/llvm-project/llvm/../third-party/unittest/googletest -Wno-deprecated-declarations -DGTEST_NO_LLVM_SUPPORT=1 -DGTEST_HAS_RTTI=0 -IC:/b/slave/sanitizer-windows/llvm-project/llvm/../third-party/unittest/googlemock/include -IC:/b/slave/sanitizer-windows/llvm-project/llvm/../third-party/unittest/googlemock -IC:/b/slave/sanitizer-windows/llvm-project/compiler-rt/include -IC:/b/slave/sanitizer-windows/llvm-project/compiler-rt/lib -IC:/b/slave/sanitizer-windows/llvm-project/compiler-rt/lib/sanitizer_common -DSANITIZER_COMMON_NO_REDEFINE_BUILTINS -fno-rtti -O2 -Werror=sign-compare -Wno-gnu-zero-variadic-macro-arguments -gline-tables-only -gcodeview -c -o SANITIZER_TEST_OBJECTS.sanitizer_lzw_test.cpp.x86_64.o C:/b/slave/sanitizer-windows/llvm-project/compiler-rt/lib/sanitizer_common/tests/sanitizer_lzw_test.cpp"
C:/b/slave/sanitizer-windows/llvm-project/compiler-rt/lib/sanitizer_common/tests/sanitizer_lzw_test.cpp:22:10: error: no member named 'generate' in namespace 'std'
   22 |     std::generate(data.begin(), data.end(), gen);
      |     ~~~~~^

Probably caused by missing include header. This will be addressed by 063cd55.
The header was included by googletest/include/gtest/internal/gtest-port.h in v.1.10.0 but it was removed in v1.14.0

@bogner
Copy link
Contributor

bogner commented Sep 12, 2023

I'm seeing some unused functions in files that haven't been changed in years, which I'm guessing come from this update - did the new googletest change how custom output works?

llvm/unittests/Support/JSONTest.cpp:490:27: error: unused function 'operator<<' [-Werror,-Wunused-function]
inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS,
                          ^
1 error generated.

I guess we can just delete this function, but I'm not sure if it means we've degraded the error messages for these tests or anything like that.

@zeroomega
Copy link
Contributor Author

I'm seeing some unused functions in files that haven't been changed in years, which I'm guessing come from this update - did the new googletest change how custom output works?

llvm/unittests/Support/JSONTest.cpp:490:27: error: unused function 'operator<<' [-Werror,-Wunused-function]
inline llvm::raw_ostream &operator<<(llvm::raw_ostream &OS,
                          ^
1 error generated.

I guess we can just delete this function, but I'm not sure if it means we've degraded the error messages for these tests or anything like that.

Yes new gtest changes how customized function work. These functions either need to be deleted or revised.

I plan to revert this roll as I am seeing some linker error in bots:

FAILED: compiler-rt/lib/fuzzer/tests/FuzzerUtils-aarch64-Test /b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-bins/compiler-rt/lib/fuzzer/tests/FuzzerUtils-aarch64-Test
cd /b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-bins/compiler-rt/lib/fuzzer/tests && /b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/./bin/clang++ FuzzedDataProviderTestObjects.FuzzedDataProviderUnittest.cpp.aarch64.o FuzzedDataProviderTestObjects.gtest-all.cc.aarch64.o -o /b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-bins/compiler-rt/lib/fuzzer/tests/./FuzzerUtils-aarch64-Test -fuse-ld=lld -Wl,--color-diagnostics -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta --driver-mode=g++ -lpthread -nostdlib++ -fno-exceptions /b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-bins/compiler-rt/lib/fuzzer/libcxx_fuzzer_aarch64/lib/libc++.a -march=armv8-a
ld.lld: error: undefined symbol: testing::internal2::PrintBytesInObjectTo(unsigned char const*, unsigned long, std::__Fuzzer::basic_ostream<char, std::__Fuzzer::char_traits<char>>*)
>>> referenced by gtest-printers.h:158 (/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/runtimes/../third-party/unittest/googletest/include/gtest/gtest-printers.h:158)
>>>               FuzzedDataProviderTestObjects.FuzzedDataProviderUnittest.cpp.aarch64.o:(std::__Fuzzer::basic_string<char, std::__Fuzzer::char_traits<char>, std::__Fuzzer::allocator<char>> testing::internal::FormatForComparisonFailureMessage<FuzzedDataProvider_ConsumeEnum_Test::TestBody()::Enum, FuzzedDataProvider_ConsumeEnum_Test::TestBody()::Enum>(FuzzedDataProvider_ConsumeEnum_Test::TestBody()::Enum const&, FuzzedDataProvider_ConsumeEnum_Test::TestBody()::Enum const&))
clang++: error: linker command failed with exit code 1 (use -v to see invocation)

It will need some time to debug.

zeroomega added a commit that referenced this pull request Sep 12, 2023
This reverts commit 54c1a9b.
It breaks a few llvm bots.
@zeroomega
Copy link
Contributor Author

I looked into the "unused functions" issue shown up in bots like: https://lab.llvm.org/buildbot/#/builders/57/builds/29853 .

The root cause is that GoogleTest changed the way it converts an arbitrary object into string. In the past, any object that cannot be printed to the string will eventually matched to function at

void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) {
. Then the call to the llvm_gtest::printable will use OS << V.V; to print the value to the stream, if the object overrides its << operator, like
friend llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const Tag &T) {
, it will be used to convert the object to string. If not, a build error will happen. In GoogleTest v1.14.0, the object to string logic is re-written and for an arbitrary object, it will eventually matched to RawBytesPrinter defined at . Therefore, the operator<< override won't be used and a unused function warnig(error) will be thrown.

So deleting these llvm::raw_ostream &operator<< functions won't cause any test failure but it will degrade the error message output since now the objects were printed as raw bytes. @bogner FYI.

@zeroomega
Copy link
Contributor Author

I look through all the bot failures from my mail box and I think so far there are two issues:

I plan to reland the roll after it passes more local tests. For the incremental build bug, I plan to manually trigger a clean build once these runtimes bots pick up my change. Please let me know if you have questions and comments.

zeroomega added a commit that referenced this pull request Sep 13, 2023
This patch reland 54c1a9b, which
updates GoogleTest to v1.14.0. This patch fixes bots failures caused
by the early patch.
@zeroomega
Copy link
Contributor Author

Relanded as a866ce7. I will monitor the bots and manually trigger clean build if linker error appears again.

@mikaelholmen
Copy link
Collaborator

I see compilation problems with this patch.
By mistake I originally posted about the problems in
#66268 (comment)

So the problem: On a RHEL7 server we see stuff like:
In file included from /repo/uabelho/dev-main/compiler-rt/lib/memprof/tests/driver.cpp:9: In file included from /repo/uabelho/dev-main/runtimes/../third-party/unittest/googletest/include/gtest/gtest.h:65: In file included from /repo/uabelho/dev-main/runtimes/../third-party/unittest/googletest/include/gtest/gtest-death-test.h:43: In file included from /repo/uabelho/dev-main/runtimes/../third-party/unittest/googletest/include/gtest/internal/gtest-death-test-internal.h:47: /repo/uabelho/dev-main/runtimes/../third-party/unittest/googletest/include/gtest/gtest-matchers.h:728:50: error: too few template arguments for class template 'equal_to' 728 | : ComparisonBase<EqMatcher<Rhs>, Rhs, std::equal_to<>>(rhs) {} | ^ /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_function.h:204:12: note: template is declared here 203 | template<typename _Tp> | ~~~~~~~~~~~~~~~~~~~~~~ 204 | struct equal_to : public binary_function<_Tp, _Tp, bool> | ^
so it looks like it's when it's using the newly built clang to compile
compiler-rt/lib/memprof/tests/driver.cpp
it's using header files from the host and those headers are too old for the updated GoogleTest.

If we don't build builtins (LLVM_BUILTIN_TARGETS) I don't see any problems.

@mikaelholmen
Copy link
Collaborator

Ok, seems like the only problem is the MemProf unit test
compiler-rt/lib/memprof/tests/

So if I manually disable that I don't see any other failures with this patch.

@zeroomega
Copy link
Contributor Author

Ok, seems like the only problem is the MemProf unit test compiler-rt/lib/memprof/tests/

So if I manually disable that I don't see any other failures with this patch.

I think any components that uses freshly built clang (stage1) could potentially run into this problem again, the correct way to solve it is to provide a compatible C++ Library to the freshly built clang when it built compiler-rt and related tests. For example, use -D with RUNTIMES_${target}_CMAKE_CXX_FLAGS and RUNTIMES_${target}_CMAKE_CXX_FLAGS to pass --gcc-toolchain (it might be deprecated and there is an updated flag for it) to the runtimes build. This will probably allow stage1 clang to use gcc's stdlib like your bootstrap clang.

@bjope
Copy link
Collaborator

bjope commented Sep 14, 2023

Ok, seems like the only problem is the MemProf unit test compiler-rt/lib/memprof/tests/
So if I manually disable that I don't see any other failures with this patch.

I think any components that uses freshly built clang (stage1) could potentially run into this problem again, the correct way to solve it is to provide a compatible C++ Library to the freshly built clang when it built compiler-rt and related tests. For example, use -D with RUNTIMES_${target}_CMAKE_CXX_FLAGS and RUNTIMES_${target}_CMAKE_CXX_FLAGS to pass --gcc-toolchain (it might be deprecated and there is an updated flag for it) to the runtimes build. This will probably allow stage1 clang to use gcc's stdlib like your bootstrap clang.

Thanks! Yes, I think we hadn't considered that some things we set up for the regular build wasn't forwarded to the compiler-rt test.
When setting
-DRUNTIMES_${target}_COMPILER_RT_TEST_COMPILER_CFLAGS=--gcc-toolchain=<path-to-toolchain>
the problem @mikaelholmen mentioned disappeared. I haven't tried adding it to CMAKE_CXX_FLAGS, but maybe that is a better option.

ZijunZhaoCCK pushed a commit to ZijunZhaoCCK/llvm-project that referenced this pull request Sep 19, 2023
This PR updates GoogleTest to v1.14.0 . It also updates the Clang
ASTTest to fix a compatibility issue with the new GoogleTest.
ZijunZhaoCCK pushed a commit to ZijunZhaoCCK/llvm-project that referenced this pull request Sep 19, 2023
This reverts commit 54c1a9b.
It breaks a few llvm bots.
ZijunZhaoCCK pushed a commit to ZijunZhaoCCK/llvm-project that referenced this pull request Sep 19, 2023
This patch reland 54c1a9b, which
updates GoogleTest to v1.14.0. This patch fixes bots failures caused
by the early patch.
@zmodem
Copy link
Collaborator

zmodem commented Sep 28, 2023

We're seeing unit test crashes on Windows when building with rpmalloc (via LLVM_INTEGRATED_CRT_ALLOC). It's crashing here: https://github.com/google/googletest/blob/v1.14.0/googletest/include/gtest/internal/gtest-port.h#L2092

(Our bug: https://crbug.com/1487548)

@aganea
Copy link
Member

aganea commented Sep 28, 2023

@zmodem Can you add ENABLE_ASSERTS on this line and run the test again, see if that gives something interesting?

@zmodem
Copy link
Collaborator

zmodem commented Sep 28, 2023

Just tried it, but I didn't hit any asserts.

zmodem added a commit that referenced this pull request Sep 28, 2023
The new implementation was brought in with the gtest update in
a866ce7, but it crashes when
building with rpmalloc, see
#65823 (comment)

Comment out the new implementation basically gives us the code
before the gtest update.
@petrhosek
Copy link
Member

We have seen occasional segfaults when using rpmalloc in other tools such as GN and Ninja which we haven't been able to get to the bottom of so we eventually switched to another allocator. It's possible that it's the same issue here, in which case perhaps we should reconsider our support for rpmalloc.

legrosbuffle pushed a commit to legrosbuffle/llvm-project that referenced this pull request Sep 29, 2023
The new implementation was brought in with the gtest update in
a866ce7, but it crashes when
building with rpmalloc, see
llvm#65823 (comment)

Comment out the new implementation basically gives us the code
before the gtest update.
@aganea
Copy link
Member

aganea commented Sep 29, 2023

@zmodem I haven’t been able to repro with the recipe posted on https://crbug.com/1487548. I am using latest rpmalloc (main branch), latest VS 2022, latest WinSDK. I am running on Win11, on a AMD Ryzen9 CPU. Are you running on WinServer2022? Are able to give more precision on the conditions for reproducing?

@zmodem
Copy link
Collaborator

zmodem commented Sep 29, 2023

I believe we're on the 10.0.19041.0 (2020-04) SDK and VS 16.6.1, running on Windows 10. The rpmalloc version is bc1923f which is probably old by now.

I'll try with the latest rpmalloc version, and will also see if I can dig into the stl headers a bit, but I won't be able to get to this today.

@aganea
Copy link
Member

aganea commented Sep 30, 2023

I managed to repro. Updating to latest rpmalloc doesn't help. It is actually this, still open, issue: microsoft/STL#1066

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang Clang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants