File indexing completed on 2025-12-16 10:18:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef MAGICKCORE_METHOD_ATTRIBUTE_H
0019 #define MAGICKCORE_METHOD_ATTRIBUTE_H
0020
0021 #if defined(__cplusplus) || defined(c_plusplus)
0022 extern "C" {
0023 #endif
0024
0025 #if defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0026 # define MagickPrivate
0027 # if defined(_MT) && defined(_DLL) && !defined(_MAGICKDLL_) && !defined(_LIB)
0028 # define _MAGICKDLL_
0029 # endif
0030 # if defined(_MAGICKDLL_)
0031 # if defined(_VISUALC_)
0032 # pragma warning( disable: 4273 )
0033 # endif
0034 # if !defined(_MAGICKLIB_)
0035 # if defined(__clang__) || defined(__GNUC__)
0036 # define MagickExport __attribute__ ((dllimport))
0037 # else
0038 # define MagickExport __declspec(dllimport)
0039 # endif
0040 # else
0041 # if defined(__clang__) || defined(__GNUC__)
0042 # define MagickExport __attribute__ ((dllexport))
0043 # else
0044 # define MagickExport __declspec(dllexport)
0045 # endif
0046 # endif
0047 # else
0048 # define MagickExport
0049 # endif
0050 # if defined(_DLL) && !defined(_LIB)
0051 # if defined(__clang__) || defined(__GNUC__)
0052 # define ModuleExport __attribute__ ((dllexport))
0053 # else
0054 # define ModuleExport __declspec(dllexport)
0055 # endif
0056 # else
0057 # define ModuleExport
0058 # endif
0059 # if defined(_VISUALC_)
0060 # pragma warning(disable : 4018)
0061 # pragma warning(disable : 4068)
0062 # pragma warning(disable : 4244)
0063 # pragma warning(disable : 4142)
0064 # pragma warning(disable : 4800)
0065 # pragma warning(disable : 4786)
0066 # pragma warning(disable : 4996)
0067 # endif
0068 #else
0069 # if defined(__clang__) || (__GNUC__ >= 4)
0070 # define MagickExport __attribute__ ((visibility ("default")))
0071 # define MagickPrivate __attribute__ ((visibility ("hidden")))
0072 # else
0073 # define MagickExport
0074 # define MagickPrivate
0075 # endif
0076 # define ModuleExport MagickExport
0077 #endif
0078
0079 #define MagickCoreSignature 0xabacadabUL
0080 #if !defined(MagickPathExtent)
0081 # define MagickPathExtent 4096
0082 #endif
0083 #define MaxTextExtent MagickPathExtent
0084 #define MagickTimeExtent 26
0085
0086 #if defined(MAGICKCORE_HAVE___ATTRIBUTE__)
0087 # define magick_aligned(x,y) x __attribute__((aligned(y)))
0088 # define magick_attribute __attribute__
0089 # define magick_unused(x) magick_unused_ ## x __attribute__((unused))
0090 # define magick_unreferenced(x)
0091 #elif defined(MAGICKCORE_WINDOWS_SUPPORT) && !defined(__CYGWIN__)
0092 # define magick_aligned(x,y) __declspec(align(y)) x
0093 # define magick_attribute(x)
0094 # define magick_unused(x) x
0095 # define magick_unreferenced(x) (x)
0096 #else
0097 # define magick_aligned(x,y)
0098 # define magick_attribute(x)
0099 # define magick_unused(x) x
0100 # define magick_unreferenced(x)
0101 #endif
0102
0103 #if !defined(__clang__) && (defined(__GNUC__) && (__GNUC__) > 4)
0104 # define magick_alloc_size(x) __attribute__((__alloc_size__(x)))
0105 # define magick_alloc_sizes(x,y) __attribute__((__alloc_size__(x,y)))
0106 # define magick_fallthrough __attribute__((fallthrough))
0107 #else
0108 # define magick_alloc_size(x)
0109 # define magick_alloc_sizes(x,y)
0110 # define magick_fallthrough
0111 #endif
0112
0113 #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__) > 4)
0114 # define magick_cold_spot __attribute__((__cold__))
0115 # define magick_hot_spot __attribute__((__hot__))
0116 #else
0117 # define magick_cold_spot
0118 # define magick_hot_spot
0119 #endif
0120
0121 #if defined(__cplusplus) || defined(c_plusplus)
0122 }
0123 #endif
0124
0125 #endif