The existing /*FALLTHROUGH*/ comments work with GCC but not Clang, so this commit adds a FALLTHROUGH macro that uses the 'fallthrough' attribute if the compiler supports it. Refer to https://bugs.chromium.org/p/chromium/issues/detail?id=995993 NOTE: All versions of GCC that support -Wimplicit-fallthrough also support the 'fallthrough' attribute, but certain other compilers (Oracle Solaris Studio, for instance) support /*FALLTHROUGH*/ but not the 'fallthrough' attribute. Thus, this commit retains the /*FALLTHROUGH*/ comments, which have existed in the libjpeg code base in some form since 1994 (libjpeg v5.) Closes #531
45 lines
1.0 KiB
C
45 lines
1.0 KiB
C
/* libjpeg-turbo build number */
|
|
#define BUILD "@BUILD@"
|
|
|
|
/* Compiler's inline keyword */
|
|
#undef inline
|
|
|
|
/* How to obtain function inlining. */
|
|
#define INLINE @INLINE@
|
|
|
|
/* How to obtain thread-local storage */
|
|
#define THREAD_LOCAL @THREAD_LOCAL@
|
|
|
|
/* Define to the full name of this package. */
|
|
#define PACKAGE_NAME "@CMAKE_PROJECT_NAME@"
|
|
|
|
/* Version number of package */
|
|
#define VERSION "@VERSION@"
|
|
|
|
/* The size of `size_t', as computed by sizeof. */
|
|
#define SIZEOF_SIZE_T @SIZE_T@
|
|
|
|
/* Define if your compiler has __builtin_ctzl() and sizeof(unsigned long) == sizeof(size_t). */
|
|
#cmakedefine HAVE_BUILTIN_CTZL
|
|
|
|
/* Define to 1 if you have the <intrin.h> header file. */
|
|
#cmakedefine HAVE_INTRIN_H
|
|
|
|
#if defined(_MSC_VER) && defined(HAVE_INTRIN_H)
|
|
#if (SIZEOF_SIZE_T == 8)
|
|
#define HAVE_BITSCANFORWARD64
|
|
#elif (SIZEOF_SIZE_T == 4)
|
|
#define HAVE_BITSCANFORWARD
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__has_attribute)
|
|
#if __has_attribute(fallthrough)
|
|
#define FALLTHROUGH __attribute__((fallthrough));
|
|
#else
|
|
#define FALLTHROUGH
|
|
#endif
|
|
#else
|
|
#define FALLTHROUGH
|
|
#endif
|