diff --git a/components/esp_common/include/esp_attr.h b/components/esp_common/include/esp_attr.h index 12cbe99d995..f602319e883 100644 --- a/components/esp_common/include/esp_attr.h +++ b/components/esp_common/include/esp_attr.h @@ -165,10 +165,12 @@ extern "C" { // Forces to not inline function #define NOINLINE_ATTR __attribute__((noinline)) -#if !defined(__clang__) && __GNUC__ >= 15 -// Marks a character array as not null-terminated to avoid string-related optimizations or warnings -#define NONSTRING_ATTR __attribute__ ((nonstring)) -#else +#if defined(__has_attribute) +#if __has_attribute(nonstring) +#define NONSTRING_ATTR __attribute__((nonstring)) +#endif +#endif +#ifndef NONSTRING_ATTR #define NONSTRING_ATTR #endif