Files
FFmpeg/libavutil/attributes_internal.h
T
Kacper Michajłow 794ffdc823 avutil: remove always-true GCC version checks in internal headers
Every GCC able to pass the C11 configure check provides these builtins,
attributes and pragmas. Public headers are left untouched since they
must keep working with C99 compilers.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
2026-09-08 03:00:16 +02:00

46 lines
1.7 KiB
C

/*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVUTIL_ATTRIBUTES_INTERNAL_H
#define AVUTIL_ATTRIBUTES_INTERNAL_H
#include "attributes.h"
#if (defined(__GNUC__) || defined(__clang__)) && (defined(__ELF__) || defined(__MACH__))
# define attribute_visibility_hidden __attribute__((visibility("hidden")))
# define FF_VISIBILITY_PUSH_HIDDEN _Pragma("GCC visibility push(hidden)")
# define FF_VISIBILITY_POP_HIDDEN _Pragma("GCC visibility pop")
#else
# define attribute_visibility_hidden
# define FF_VISIBILITY_PUSH_HIDDEN
# define FF_VISIBILITY_POP_HIDDEN
#endif
#define EXTERN extern attribute_visibility_hidden
#if (AV_HAS_ATTRIBUTE(nonstring) && (AV_GCC_VERSION_AT_LEAST(15,1) || defined(__clang__)))
// Attribute to mark a variable initialized via a string literal as not
// containing string data to suppress warnings about unterminated strings
// in situations like char fourcc[4] = "TALB".
#define attribute_nonstring __attribute__((nonstring))
#else
#define attribute_nonstring
#endif
#endif /* AVUTIL_ATTRIBUTES_INTERNAL_H */