Skip to content

Commit eb89d55

Browse files
committed
more work on asanwin, for now all errors are recovered, hence test.log files needs to be inspected
1 parent d935dd6 commit eb89d55

File tree

3 files changed

+302
-15
lines changed

3 files changed

+302
-15
lines changed

.bazelrc

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,32 +61,44 @@ build:macos --host_action_env=CC=/opt/homebrew/opt/llvm/bin/clang
6161
# Windows specific asan setup
6262
# common:asanwin --copt -fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,null,return,returns-nonnull-attribute,shift-exponent,signed-integer-overflow,unreachable,vla-bound
6363
#common:asanwin --copt -fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,null,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound
64-
common:asanwin --copt -fsanitize=address,undefined
64+
# vptr is not support for "clang-cl"
65+
common:asanwin --copt -fsanitize=address,undefined,implicit-integer-truncation,implicit-integer-arithmetic-value-change,implicit-conversion,integer,nullability,float-divide-by-zero,local-bounds
6566
common:asanwin --copt -fno-sanitize-ignorelist --copt -MD
6667
#alignment,bool,builtin,bounds,array-bounds,enum,float-cast-overflow,integer-divide-by-zero,function,implicit-unsigned-integer-truncation,implicit-signed-integer-truncation,implicit-integer-sign-change,null,return,returns-nonnull-attribute,shift-exponent,unreachable,vla-bound
6768
common:asanwin --copt -fsanitize-address-use-after-scope
6869
common:asanwin --copt -fsanitize-address-globals-dead-stripping
6970
common:asanwin --copt -fsanitize-address-outline-instrumentation
7071
common:asanwin --copt -fsanitize-address-use-after-return=always
7172
common:asanwin --copt -fsanitize-stable-abi
72-
common:asanwin --copt -fsanitize-merge
73+
common:asanwin --copt -fno-sanitize-merge
74+
common:asanwin --copt -fsanitize-recover=all
75+
76+
# Gives:
77+
# lld-link: error: /alternatename: conflicts: __sanitizer_on_print=__sanitizer_on_print__def
78+
# Use --verbose_failures to see the command lines of failed build steps.
79+
# common:asanwin --copt -fsanitize-stats
80+
81+
# Gives:
82+
# lld-link: error: duplicate symbol: __cfi_check_fail
83+
# >>> defined at runfiles.lib(runfiles.obj)
84+
# common:asanwin --copt -fsanitize-cfi-cross-dso
85+
86+
# Gives multiple, like
87+
# lld-link: error: duplicate symbol: __odr_asan_gen_??_R0?AVios_base@std@@@8
88+
# >>> defined at runfiles.lib(runfiles.obj)
7389
# common:asanwin --copt -fsanitize-address-use-odr-indicator
74-
# common:asanwin --test_env="ASAN_OPTIONS=report_globals=0:detect_odr_violation=0:verbosity=1:debug=1:strict_init_order=1:check_initialization_order=1:detect_stack_use_after_return=1:print_stats=1:verbosity=2:atexit=1:alloc_dealloc_mismatch=1:strict_string_checks=1:use_odr_indicator=1:halt_on_error=0:malloc_context_size=0"
75-
# common:asanwin --test_env=ASAN_OPTIONS="help"
90+
91+
# https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/asan/asan_flags.inc
92+
common:asanwin --test_env="ASAN_OPTIONS=report_globals=0:detect_odr_violation=0:verbosity=1:debug=1:strict_init_order=1:check_initialization_order=1:detect_stack_use_after_return=1:print_stats=1:verbosity=2:atexit=1:alloc_dealloc_mismatch=1:strict_string_checks=1:halt_on_error=0:malloc_context_size=0:windows_hook_rtl_allocators=1:print_scariness=1"
93+
94+
# https://github.com/llvm/llvm-project/blob/main/compiler-rt/lib/ubsan/ubsan_flags.inc
95+
common:asanwin --test_env="UBSAN_OPTIONS=print_stacktrace=1:report_error_type=1"
96+
# common:asanwin --test_env="ASAN_OPTIONS=help=1"
7697
common:asanwin --cc_output_directory_tag=asanwin
7798
common:asanwin --@otel_sdk//:asanwin=true
78-
# common:asanwin --copt -fno-sanitize-cfi-canonical-jump-tables
79-
# common:asanwin --copt -fno-sanitize-cfi-cross-dso
99+
test:asanwin --test_timeout=3600
80100
# common:asanwin -fno-sanitize-coverage=<value>
81-
# common:asanwin --copt -fno-sanitize-hwaddress-experimental-aliasing
82-
# common:asanwin --copt -fno-sanitize-memory-param-retval
83-
# common:asanwin --copt -fno-sanitize-memory-track-origins
84-
# common:asanwin --copt -fno-sanitize-memory-use-after-dtor
85101
# common:asanwin -fno-sanitize-recover=<value>
86-
# common:asanwin -fno-sanitize-stats
87-
# common:asanwin --copt -fno-sanitize-thread-atomics
88-
# common:asanwin --copt -fno-sanitize-thread-func-entry-exit
89-
# common:asanwin --copt -fno-sanitize-thread-memory-access
90102

91103
common:asan --copt -DADDRESS_SANITIZER
92104
common:asan --copt -fsanitize=address,bool,float-cast-overflow,integer-divide-by-zero,null,return,returns-nonnull-attribute,shift-exponent,signed-integer-overflow,unreachable,vla-bound

api/test/nostd/string_view_test.cc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ TEST(StringViewTest, SubstrPortion)
7272
EXPECT_EQ("12", s.substr(3, 2));
7373
}
7474

75-
TEST(StringViewTest, SubstrOutOfRange)
75+
static void __attribute__((no_sanitize("address"))) StringViewTest_SubstrOutOfRange_NoSanatize()
7676
{
7777
string_view s = "abc123";
7878
#if __EXCEPTIONS || (defined(OPENTELEMETRY_STL_VERSION) && (OPENTELEMETRY_STL_VERSION >= 2017))
@@ -82,6 +82,11 @@ TEST(StringViewTest, SubstrOutOfRange)
8282
#endif
8383
}
8484

85+
TEST(StringViewTest, SubstrOutOfRange)
86+
{
87+
StringViewTest_SubstrOutOfRange_NoSanatize();
88+
}
89+
8590
TEST(StringViewTest, FindSingleCharacter)
8691
{
8792
string_view s = "abc";

0 commit comments

Comments
 (0)