bypass vptr santizier (#4231)

LLVM, by default, disables the use of C++'s built-in Run-Time Type Information.
This decision is primarily driven by concerns about code size and efficiency.

But '-fsanitize=vptr' not allowed with '-fno-rtti'.
This commit is contained in:
liang.he 2025-04-29 10:05:02 +08:00 committed by GitHub
parent 791e60f533
commit 1d39b9c834
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -90,8 +90,10 @@ add_compile_options(-Wno-unused-command-line-argument)
# Enable fuzzer
add_definitions(-DWASM_ENABLE_FUZZ_TEST=1)
add_compile_options(-fsanitize=fuzzer)
add_link_options(-fsanitize=fuzzer)
# '-fsanitize=vptr' not allowed with '-fno-rtti
# But, LLVM by default, disables the use of `rtti` in the compiler
add_compile_options(-fsanitize=fuzzer -fno-sanitize=vptr)
add_link_options(-fsanitize=fuzzer -fno-sanitize=vptr)
# Enable sanitizers if not in oss-fuzz environment
set(CFLAGS_ENV $ENV{CFLAGS})