From cce545a74b84ca64eb0c3e8e9aa8ea10dda2a066 Mon Sep 17 00:00:00 2001 From: Marvin Scholz Date: Thu, 19 Feb 2026 19:39:52 +0100 Subject: [PATCH] avutil: attributes: fix AV_HAS_STD_ATTRIBUTE checks Attributes with the language-supported [[attr]] style are only supported since C++11 and C23 respectively, so this needs to be accounted for in these checks. This solves a huge amount of warning spam of: warning: [[]] attributes are a C23 extension [-Wc23-extensions] when using --enable-extra-warnings. --- libavutil/attributes.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavutil/attributes.h b/libavutil/attributes.h index 9e0222a691..0e49b22b9d 100644 --- a/libavutil/attributes.h +++ b/libavutil/attributes.h @@ -46,9 +46,14 @@ # define AV_HAS_ATTRIBUTE(x) 0 #endif -#if defined(__cplusplus) && defined(__has_cpp_attribute) +#if defined(__cplusplus) && \ + defined(__has_cpp_attribute) && \ + __cplusplus >= 201103L # define AV_HAS_STD_ATTRIBUTE(x) __has_cpp_attribute(x) -#elif !defined(__cplusplus) && defined(__has_c_attribute) +#elif !defined(__cplusplus) && \ + defined(__has_c_attribute) && \ + defined(__STDC_VERSION__) && \ + __STDC_VERSION__ >= 202311L # define AV_HAS_STD_ATTRIBUTE(x) __has_c_attribute(x) #else # define AV_HAS_STD_ATTRIBUTE(x) 0