From d39a1d7486d98668dd34aaa6732aad7977c45f5a Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Fri, 20 Feb 2026 13:15:58 -0800 Subject: compiler_types: Disable __builtin_counted_by_ref for Clang Unfortunately, there is a corner case of __builtin_counted_by_ref() usage that crashes[1] Clang since support was introduced in Clang 19. Disable it prior to Clang 22. Found while tested kmalloc_obj treewide refactoring (via kmalloc_flex() usage). Link: https://github.com/llvm/llvm-project/issues/182575 [1] Signed-off-by: Kees Cook --- init/Kconfig | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'init') diff --git a/init/Kconfig b/init/Kconfig index e95d43457851..c25869cf59c1 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -150,6 +150,11 @@ config CC_HAS_COUNTED_BY_PTR # supported since gcc 16.0.0 default y if CC_IS_GCC && GCC_VERSION >= 160000 +config CC_HAS_BROKEN_COUNTED_BY_REF + bool + # https://github.com/llvm/llvm-project/issues/182575 + default y if CC_IS_CLANG && CLANG_VERSION < 220000 + config CC_HAS_MULTIDIMENSIONAL_NONSTRING def_bool $(success,echo 'char tag[][4] __attribute__((__nonstring__)) = { };' | $(CC) $(CLANG_FLAGS) -x c - -c -o /dev/null -Werror) -- cgit v1.2.3