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.
This commit is contained in:
Marvin Scholz
2026-02-19 19:39:52 +01:00
parent c49f6bec20
commit cce545a74b

View File

@@ -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