From a6106ca22185cfd3e66207a17e49dafd94dd1ae2 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 24 Nov 2023 09:24:23 +0100 Subject: [PATCH] AK: Use __builtin_offsetof() + -Wno-invalid-offsetof to silence ASAN ASAN was crying way too much when running the LibJS JIT since the old OFFSET_OF implementation was too wild for its liking. By turning off the invalid-offsetof warnings, we can use the offsetof builtin instead. However, I'm leaving this as a wrapper macro, since we may still want to do something different for other compilers. --- AK/StdLibExtras.h | 2 +- Meta/CMake/common_compile_options.cmake | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/AK/StdLibExtras.h b/AK/StdLibExtras.h index 6d6dba878cb..84fb6034cac 100644 --- a/AK/StdLibExtras.h +++ b/AK/StdLibExtras.h @@ -16,7 +16,7 @@ #include -#define OFFSET_OF(class, member) (reinterpret_cast(&reinterpret_cast(0x1000)->member) - 0x1000) +#define OFFSET_OF(class, member) __builtin_offsetof(class, member) namespace AK { diff --git a/Meta/CMake/common_compile_options.cmake b/Meta/CMake/common_compile_options.cmake index 684a3ad0027..ffd6252f024 100644 --- a/Meta/CMake/common_compile_options.cmake +++ b/Meta/CMake/common_compile_options.cmake @@ -6,6 +6,8 @@ set(CMAKE_CXX_EXTENSIONS OFF) add_compile_options(-Wall) add_compile_options(-Wextra) +add_compile_options(-Wno-invalid-offsetof) + add_compile_options(-Wno-unknown-warning-option) add_compile_options(-Wno-unused-command-line-argument)