Feature #681 » 0046-gnulib-common.m4-Update-to-serial-94.patch
dependencies/m4/gnulib-common.m4 | ||
---|---|---|
# gnulib-common.m4
|
||
# serial 93
|
||
# serial 94
|
||
dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
|
||
dnl This file is free software; the Free Software Foundation
|
||
dnl gives unlimited permission to copy and/or distribute it,
|
||
... | ... | |
# 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_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_unused _GL_GNUC_PREREQ (2, 7)
|
||
# define _GL_ATTR_warn_unused_result _GL_GNUC_PREREQ (3, 4)
|
||
# endif
|
||
... | ... | |
_GL_ATTRIBUTE_ALLOC_SIZE ((M, N)) declares that the Mth argument multiplied
|
||
by the Nth argument of the function is the size of the returned memory block.
|
||
*/
|
||
/* Applies to: function, pointer to function, function types. */
|
||
/* Applies to: functions, pointer to functions, function types. */
|
||
#ifndef _GL_ATTRIBUTE_ALLOC_SIZE
|
||
# if _GL_HAS_ATTRIBUTE (alloc_size)
|
||
# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
|
||
... | ... | |
/* _GL_ATTRIBUTE_ALWAYS_INLINE tells that the compiler should always inline the
|
||
function and report an error if it cannot do so. */
|
||
/* Applies to: function. */
|
||
/* Applies to: functions. */
|
||
#ifndef _GL_ATTRIBUTE_ALWAYS_INLINE
|
||
# if _GL_HAS_ATTRIBUTE (always_inline)
|
||
# define _GL_ATTRIBUTE_ALWAYS_INLINE __attribute__ ((__always_inline__))
|
||
... | ... | |
/* _GL_ATTRIBUTE_ARTIFICIAL declares that the function is not important to show
|
||
in stack traces when debugging. The compiler should omit the function from
|
||
stack traces. */
|
||
/* Applies to: function. */
|
||
/* Applies to: functions. */
|
||
#ifndef _GL_ATTRIBUTE_ARTIFICIAL
|
||
# if _GL_HAS_ATTRIBUTE (artificial)
|
||
# define _GL_ATTRIBUTE_ARTIFICIAL __attribute__ ((__artificial__))
|
||
... | ... | |
# endif
|
||
#endif
|
||
/* _GL_ATTRIBUTE_CONST declares that it is OK for a compiler to omit duplicate
|
||
calls to the function with the same arguments.
|
||
This attribute is safe for a function that neither depends on nor affects
|
||
observable state, and always returns exactly once - e.g., does not loop
|
||
forever, and does not call longjmp.
|
||
(This attribute is stricter than _GL_ATTRIBUTE_PURE.) */
|
||
/* It is OK for a compiler to move calls to the function and to omit
|
||
calls to the function if another call has the same arguments or the
|
||
result is not used.
|
||
This attribute is safe for a function that neither depends on
|
||
nor affects state, and always returns exactly once -
|
||
e.g., does not raise an exception, call longjmp, or loop forever.
|
||
(This attribute is stricter than _GL_ATTRIBUTE_PURE because the
|
||
function cannot observe state. It is stricter than
|
||
_GL_ATTRIBUTE_UNSEQUENCED because the function must return exactly
|
||
once and cannot depend on state addressed by its arguments.) */
|
||
/* Applies to: functions. */
|
||
#ifndef _GL_ATTRIBUTE_CONST
|
||
# if _GL_HAS_ATTRIBUTE (const)
|
||
# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
|
||
# else
|
||
# define _GL_ATTRIBUTE_CONST
|
||
# define _GL_ATTRIBUTE_CONST _GL_ATTRIBUTE_UNSEQUENCED
|
||
# endif
|
||
#endif
|
||
... | ... | |
minimizing the memory required. */
|
||
/* Applies to: struct members, struct, union,
|
||
in C++ also: class. */
|
||
#ifndef _GL_ATTRIBUTE_PACKED
|
||
/* Oracle Studio 12.6 miscompiles code with __attribute__ ((__packed__)) despite
|
||
__has_attribute OK. */
|
||
#ifndef _GL_ATTRIBUTE_PACKED
|
||
# if _GL_HAS_ATTRIBUTE (packed) && !defined __SUNPRO_C
|
||
# define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
|
||
# else
|
||
... | ... | |
# endif
|
||
#endif
|
||
/* _GL_ATTRIBUTE_PURE declares that It is OK for a compiler to omit duplicate
|
||
calls to the function with the same arguments if observable state is not
|
||
changed between calls.
|
||
This attribute is safe for a function that does not affect
|
||
observable state, and always returns exactly once.
|
||
(This attribute is looser than _GL_ATTRIBUTE_CONST.) */
|
||
/* It is OK for a compiler to move calls to the function and to omit
|
||
calls to the function if another call has the same arguments or the
|
||
result is not used, and if observable state is the same.
|
||
This attribute is safe for a function that does not affect observable state
|
||
and always returns exactly once.
|
||
(This attribute is looser than _GL_ATTRIBUTE_CONST because the function
|
||
can depend on observable state. It is stricter than
|
||
_GL_ATTRIBUTE_REPRODUCIBLE because the function must return exactly
|
||
once and cannot affect state addressed by its arguments.) */
|
||
/* Applies to: functions. */
|
||
#ifndef _GL_ATTRIBUTE_PURE
|
||
# if _GL_HAS_ATTRIBUTE (pure)
|
||
# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
|
||
# else
|
||
# define _GL_ATTRIBUTE_PURE
|
||
# define _GL_ATTRIBUTE_PURE _GL_ATTRIBUTE_REPRODUCIBLE
|
||
# endif
|
||
#endif
|
||
/* It is OK for a compiler to move calls to the function and to omit duplicate
|
||
calls to the function with the same arguments, so long as the state
|
||
addressed by its arguments is the same and is updated in time for
|
||
the rest of the program.
|
||
This attribute is safe for a function that is effectless and idempotent; see
|
||
ISO C 23 § 6.7.12.7 for a definition of these terms.
|
||
(This attribute is looser than _GL_ATTRIBUTE_UNSEQUENCED because
|
||
the function need not be stateless and idempotent. It is looser
|
||
than _GL_ATTRIBUTE_PURE because the function need not return
|
||
exactly once and can affect state addressed by its arguments.)
|
||
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
|
||
<https://stackoverflow.com/questions/76847905/>. */
|
||
/* Applies to: functions, pointer to functions, function types. */
|
||
#ifndef _GL_ATTRIBUTE_REPRODUCIBLE
|
||
# if _GL_HAS_ATTRIBUTE (reproducible)
|
||
# define _GL_ATTRIBUTE_REPRODUCIBLE [[reproducible]]
|
||
# else
|
||
# define _GL_ATTRIBUTE_REPRODUCIBLE
|
||
# endif
|
||
#endif
|
||
... | ... | |
# endif
|
||
#endif
|
||
/* It is OK for a compiler to move calls to the function and to omit duplicate
|
||
calls to the function with the same arguments, so long as the state
|
||
addressed by its arguments is the same.
|
||
This attribute is safe for a function that is effectless, idempotent,
|
||
stateless, and independent; see ISO C 23 § 6.7.12.7 for a definition of
|
||
these terms.
|
||
(This attribute is stricter than _GL_ATTRIBUTE_REPRODUCIBLE because
|
||
the function must be stateless and independent. It is looser than
|
||
_GL_ATTRIBUTE_CONST because the function need not return exactly
|
||
once and can depend on state addressed by its arguments.)
|
||
See also <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2956.htm> and
|
||
<https://stackoverflow.com/questions/76847905/>. */
|
||
/* Applies to: functions, pointer to functions, function types. */
|
||
#ifndef _GL_ATTRIBUTE_UNSEQUENCED
|
||
# if _GL_HAS_ATTRIBUTE (unsequenced)
|
||
# define _GL_ATTRIBUTE_UNSEQUENCED [[unsequenced]]
|
||
# else
|
||
# define _GL_ATTRIBUTE_UNSEQUENCED
|
||
# endif
|
||
#endif
|
||
/* A helper macro. Don't use it directly. */
|
||
#ifndef _GL_ATTRIBUTE_UNUSED
|
||
# if _GL_HAS_ATTRIBUTE (unused)
|