cmake: Add check for fallthrough attribute
Signed-off-by: Andreas Schneider <asn@cryptomilk.org>
Этот коммит содержится в:
родитель
7204d2f485
Коммит
a9846ccc0d
@ -242,6 +242,33 @@ int main(void) {
|
|||||||
return 0;
|
return 0;
|
||||||
}" HAVE_MSC_THREAD_LOCAL_STORAGE)
|
}" HAVE_MSC_THREAD_LOCAL_STORAGE)
|
||||||
|
|
||||||
|
check_c_source_compiles("
|
||||||
|
#define FALL_THROUGH __attribute__((fallthrough))
|
||||||
|
|
||||||
|
enum direction_e {
|
||||||
|
UP = 0,
|
||||||
|
DOWN,
|
||||||
|
};
|
||||||
|
|
||||||
|
int main(void) {
|
||||||
|
enum direction_e key = UP;
|
||||||
|
int i = 10;
|
||||||
|
int j = 0;
|
||||||
|
|
||||||
|
switch (key) {
|
||||||
|
case UP:
|
||||||
|
i = 5;
|
||||||
|
FALL_THROUGH;
|
||||||
|
case DOWN:
|
||||||
|
j = i * 2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}" HAVE_FALLTHROUGH_ATTRIBUTE)
|
||||||
|
|
||||||
check_c_source_compiles("
|
check_c_source_compiles("
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
@ -167,6 +167,8 @@
|
|||||||
#cmakedefine HAVE_GCC_THREAD_LOCAL_STORAGE 1
|
#cmakedefine HAVE_GCC_THREAD_LOCAL_STORAGE 1
|
||||||
#cmakedefine HAVE_MSC_THREAD_LOCAL_STORAGE 1
|
#cmakedefine HAVE_MSC_THREAD_LOCAL_STORAGE 1
|
||||||
|
|
||||||
|
#cmakedefine HAVE_FALLTHROUGH_ATTRIBUTE 1
|
||||||
|
|
||||||
#cmakedefine HAVE_GCC_VOLATILE_MEMORY_PROTECTION 1
|
#cmakedefine HAVE_GCC_VOLATILE_MEMORY_PROTECTION 1
|
||||||
#cmakedefine HAVE_GCC_NARG_MACRO 1
|
#cmakedefine HAVE_GCC_NARG_MACRO 1
|
||||||
|
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user