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
68a1c0b706
commit
f490b51ab7
|
@ -382,13 +382,22 @@ it. Hence, a fully platform-independant way to use alignment is not supported.
|
|||
/**************************************************
|
||||
* 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]]
|
||||
#elif defined(__GNUC__) && (__GNUC__ >= 7)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef FDK_FALLTHROUGH
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 7)
|
||||
#define FDK_FALLTHROUGH __attribute__((fallthrough))
|
||||
#else
|
||||
#define FDK_FALLTHROUGH
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue