From fa25e2de488d87d50af92a630b012fa7ec9d4f19 Mon Sep 17 00:00:00 2001 From: "Juan A. Suarez Romero" Date: Wed, 20 Aug 2025 16:25:36 +0200 Subject: [PATCH] util: add DECLARE_LINEAR_ZALLOC with no sanitize This specific macro allow to create a new() operator version with a sanitizer flag disabled. Signed-off-by: Juan A. Suarez Romero Reviewed-by: Yonggang Luo Part-of: --- src/util/ralloc.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/util/ralloc.h b/src/util/ralloc.h index f3fe3c951ce..2d014a0298b 100644 --- a/src/util/ralloc.h +++ b/src/util/ralloc.h @@ -566,8 +566,9 @@ public: \ DECLARE_RALLOC_CXX_OPERATORS_TEMPLATE(type, rzalloc_size) -#define DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(TYPE, ALLOC_FUNC, new_cmd, new_array_cmd) \ +#define DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(TYPE, ALLOC_FUNC, new_cmd, new_array_cmd, ATTRIBUTE) \ public: \ + ATTRIBUTE \ static void* operator new(size_t size, linear_ctx *ctx) \ { \ void *p = ALLOC_FUNC(ctx, size); \ @@ -575,6 +576,7 @@ public: \ new_cmd \ return p; \ } \ + ATTRIBUTE \ static void* operator new[](size_t size, linear_ctx *ctx) \ { \ void *p = ALLOC_FUNC(ctx, size); \ @@ -585,11 +587,16 @@ public: \ #define DECLARE_LINEAR_ALLOC_CXX_OPERATORS(type, new_cmd, new_array_cmd) \ DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_alloc_child, \ - new_cmd, new_array_cmd) + new_cmd, new_array_cmd,) #define DECLARE_LINEAR_ZALLOC_CXX_OPERATORS(type, new_cmd, new_array_cmd) \ DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_zalloc_child, \ - new_cmd, new_array_cmd) + new_cmd, new_array_cmd,) + +#define DECLARE_LINEAR_ZALLOC_CXX_OPERATORS_NO_SANITIZE(type, new_cmd, new_array_cmd, FLAG) \ + DECLARE_LINEAR_ALLOC_CXX_OPERATORS_TEMPLATE(type, linear_zalloc_child, \ + new_cmd, new_array_cmd, \ + ATTRIBUTE_NO_SANITIZE_##FLAG) typedef struct linear_ctx linear_ctx;