mirror of https://github.com/mstorsjo/fdk-aac.git
Fix FDK_FALLTHROUGH for apple clang
In the apple branded version of clang, the [[clang::fallthrough]] attribute isn't supported. Directly exposing __has_cpp_attribute(clang::fallthrough) to the preprocessor breaks when building in C mode with GCC, which forces wrapping it in an extra layer of #ifdef __cplusplus.
This commit is contained in:
parent
02103fd630
commit
f285813ec1
|
@ -382,13 +382,22 @@ it. Hence, a fully platform-independant way to use alignment is not supported.
|
||||||
/**************************************************
|
/**************************************************
|
||||||
* Macros regarding static code analysis
|
* Macros regarding static code analysis
|
||||||
**************************************************/
|
**************************************************/
|
||||||
#if defined(__clang__)
|
#ifdef __cplusplus
|
||||||
|
#if !defined(__has_cpp_attribute)
|
||||||
|
#define __has_cpp_attribute(x) 0
|
||||||
|
#endif
|
||||||
|
#if defined(__clang__) && __has_cpp_attribute(clang::fallthrough)
|
||||||
#define FDK_FALLTHROUGH [[clang::fallthrough]]
|
#define FDK_FALLTHROUGH [[clang::fallthrough]]
|
||||||
#elif defined(__GNUC__) && (__GNUC__ >= 7)
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FDK_FALLTHROUGH
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ >= 7)
|
||||||
#define FDK_FALLTHROUGH __attribute__((fallthrough))
|
#define FDK_FALLTHROUGH __attribute__((fallthrough))
|
||||||
#else
|
#else
|
||||||
#define FDK_FALLTHROUGH
|
#define FDK_FALLTHROUGH
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue