#endif
/* Suppress gcc's "...may be used before initialized" warnings,
- generated by GCC versions up to at least GCC 14.2.
+ generated by GCC versions up to at least GCC 15.1.
Likewise for gcc -fanalyzer's "use of uninitialized value" warnings. */
#if _GL_GNUC_PREREQ (4, 7)
# pragma GCC diagnostic push
# define _GL_HAS_ATTRIBUTE(attr) __has_attribute (__##attr##__)
# else
# define _GL_HAS_ATTRIBUTE(attr) _GL_ATTR_##attr
+/* The following lines list the first GCC version that supports the attribute.
+ Although the lines are not used in GCC 5 and later (as GCC 5 introduced
+ __has_attribute support), list GCC versions 5+ anyway for completeness. */
# define _GL_ATTR_alloc_size _GL_GNUC_PREREQ (4, 3)
# define _GL_ATTR_always_inline _GL_GNUC_PREREQ (3, 2)
# define _GL_ATTR_artificial _GL_GNUC_PREREQ (4, 3)
# define _GL_ATTR_nothrow _GL_GNUC_PREREQ (3, 3)
# define _GL_ATTR_packed _GL_GNUC_PREREQ (2, 7)
# define _GL_ATTR_pure _GL_GNUC_PREREQ (2, 96)
-# define _GL_ATTR_reproducible 0 /* not yet supported, as of GCC 14 */
+# define _GL_ATTR_reproducible _GL_GNUC_PREREQ (15, 1)
# define _GL_ATTR_returns_nonnull _GL_GNUC_PREREQ (4, 9)
# define _GL_ATTR_sentinel _GL_GNUC_PREREQ (4, 0)
-# define _GL_ATTR_unsequenced 0 /* not yet supported, as of GCC 14 */
+# define _GL_ATTR_unsequenced _GL_GNUC_PREREQ (15, 1)
# define _GL_ATTR_unused _GL_GNUC_PREREQ (2, 7)
# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
# endif
and an initial shift state." */
/* This test is known to fail
- on musl libc,
- - with gcc 14 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114876> */
+ - with GCC 14.1, 13.2, 12.3, and 11.4
+ <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114876> */
ASSERT (memcmp (result, "a\0z 33\0", 6 + 1) == 0);
ASSERT (retval == 6);
}