Hi. I am starting a new project <https://android.googlesource.com/platform/external/perfetto/+/master/> in Android land and setting up test coverage with sanitizers. I wrote a meta-test <https://android.googlesource.com/platform/external/perfetto/+/master/libtracing/sanitizers_unittest.cc> to make sure that the sanitizers are actually shouting when there is a violation. Almost everything is working as expected (read: failing-as-intened). The only exception is LSan on Android (N, armv7), where both LSAN_Leak* <https://android.googlesource.com/platform/external/perfetto/+/master/libtracing/sanitizers_unittest.cc#70> tests silently succeed. The same test with the same build configuration fails as expected on Linux. Likewise, the ASan test fails as expected on Android. I am 90% sure this is me doing something wrong but can't tell what. I looked at the assembly <https://ghostbin.com/paste/4vudu> and this doesn't see to be a case of clang outsmarting the test code (i.e. the generated code actually has two leaking malloc calls) I am using the compiler toolchain (clang) and sanitizers lib from latest Android's NDK (r15c), targeting their libcxx/cxxabi.
Repro steps: git checkout https://android.googlesource.com/platform/external/perfetto build/install-build-deps # will download ndk and emulators gn gen out/android_lsan/ --args="is_lsan=true target_os=\"android\"" ninja -C out/android_lsan/ sanitizers_unittests build/run_android_emulator & build/run_android_test out/android_lsan sanitizers_unittests These are the compiler flag used while building: /s/perfetto/buildtools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -MMD -MF obj/libtracing/sanitizers_unittests.sanitizers_unittest.o.d -DLEAK_SANITIZER -DGTEST_LANG_CXX11=1 -I../.. -I../../buildtools/googletest/googletest/include -I../../buildtools/googletest/googlemock/include -gline-tables-only -funwind-tables -fstrict-aliasing -fstack-protector -fPIC -Wa,--noexecstack -Wformat -Wall -Werror -march=armv7-a -mfpu=neon -mthumb -isystem/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm/usr/include --sysroot=/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm -DANDROID --target=arm-linux-androideabi -Wextra -Wno-missing-field-initializers -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-gnu-include-next -Wno-gnu-statement-expression -Wno-padded -Wno-reserved-id-macro -Wno-unused-parameter -Wno-unknown-warning-option -fno-exceptions -fno-rtti -fno-omit-frame-pointer -fsanitize-blacklist=../../build/sanitizers/blacklist.txt -fsanitize=leak -fPIE -Wno-deprecated -Wno-global-constructors -Wno-missing-noreturn -Wno-shift-sign-overflow -Wno-undef -Wno-used-but-marked-unused -Wno-weak-vtables -fno-omit-frame-pointer -fsanitize=leak -std=c++11 -I/s/perfetto/buildtools/ndk/sources/cxx-stl/llvm-libc++/include -I/s/perfetto/buildtools/ndk/sources/android/support/include -I/s/perfetto/buildtools/ndk/sources/cxx-stl/llvm-libc++abi/include -c ../../libtracing/sanitizers_unittest.cc -o obj/libtracing/sanitizers_unittests.sanitizers_unittest.o And this when linking /s/perfetto/buildtools/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-z,nocopyreloc -gcc-toolchain /s/perfetto/buildtools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 --sysroot=/s/perfetto/buildtools/ndk/platforms/android-21/arch-arm --target=arm-linux-androideabi -Wl,--exclude-libs,libunwind.a -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libc++_static.a -Wl,--build-id -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--warn-shared-textrel -Wl,--fatal-warnings -fPIE -pie -fsanitize=leak -L../../buildtools/ndk/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a -L../../buildtools/ndk/platforms/android-21/arch-arm/usr/lib obj/libtracing/sanitizers_unittests.sanitizers_unittest.o obj/buildtools/googletest/googletest/src/gtest.gtest-all.o obj/buildtools/googletest/googletest/src/gtest_main.gtest_main.o -llog -lgcc -lc++_static -lc++abi -landroid_support -o sanitizers_unittests -- You received this message because you are subscribed to the Google Groups "address-sanitizer" group. To unsubscribe from this group and stop receiving emails from it, send an email to address-sanitizer+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.