lo1ol added a comment.
Ok, I get current situation.
Sorry for my late answer. I made some investigation yesterday and compared msvc
and clang versions of asan. In my tests msvc version seems more stable.
All my tests is written via catch2 framework (v2.13.8). So, first example is:
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <iostream>
TEST_CASE( "kek" ) {
for (int i=0; i < 10; ++i) {
printf("lol ke\n");
free(malloc(4472));
}
}
If compiles it via msvc version of asan, everything is ok:
# copy MSVC\14.29.30133\lib\x64 to Llvm\x64\lib\clang\12.0.0\lib\windows
before
$ clang-cl kek.cpp -I ..\Catch2\single_include /MT -fsanitize=address
$ kek.exe
lol ke
lol ke
lol ke
lol ke
lol ke
lol ke
lol ke
lol ke
lol ke
lol ke
===============================================================================
test cases: 1 | 1 passed
assertions: - none -
But version for clang's toolchain has strange behavior:
# With original content of Llvm\x64\lib\clang\12.0.0\lib\windows
$ clang-cl kek.cpp -I ..\Catch2\single_include /MT -fsanitize=address
$ kek.exe
lol ke
lol ke
lol ke
lol ke
lol ke
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
Nevertheless, I found some bug which presents inside both versions
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>
#include <iostream>
#include <future>
TEST_CASE( "kek" ) {
auto result = std::async(std::launch::async, []() {
std::cerr << "kek " << std::endl;
});
result.get();
}
The output is same for both versions:
$ clang-cl kek.cpp -I ..\Catch2\single_include /MT -fsanitize=address
$ kek.exe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
I don't have a time to discover a root of problem. But msvc's version of asan
seems to me more stable and compatible with clang's asan. So, may be there is
point to distribute same version of asan for both toolchains.
If you want, I may create an issue for founded bugs.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D119711/new/
https://reviews.llvm.org/D119711
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits