Contributors: 7
| Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
| Arnaldo Carvalho de Melo |
30 |
45.45% |
3 |
33.33% |
| Ian Rogers |
17 |
25.76% |
1 |
11.11% |
| Yang Jihong |
11 |
16.67% |
1 |
11.11% |
| Marco Elver |
3 |
4.55% |
1 |
11.11% |
| Frédéric Weisbecker |
2 |
3.03% |
1 |
11.11% |
| Linus Torvalds |
2 |
3.03% |
1 |
11.11% |
| Greg Kroah-Hartman |
1 |
1.52% |
1 |
11.11% |
| Total |
66 |
|
9 |
|
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __LINUX_COMPILER_TYPES_H
#define __LINUX_COMPILER_TYPES_H
/* Builtins */
/*
* __has_builtin is supported on gcc >= 10, clang >= 3 and icc >= 21.
* In the meantime, to support gcc < 10, we implement __has_builtin
* by hand.
*/
#ifndef __has_builtin
#define __has_builtin(x) (0)
#endif
#include <linux/compiler-context-analysis.h>
/* Compiler specific macros. */
#ifdef __GNUC__
#include <linux/compiler-gcc.h>
#endif
#ifndef asm_goto_output
#define asm_goto_output(x...) asm goto(x)
#endif
/*
* __unqual_scalar_typeof(x) - Declare an unqualified scalar type, leaving
* non-scalar types unchanged.
*/
/*
* Prefer C11 _Generic for better compile-times and simpler code. Note: 'char'
* is not type-compatible with 'signed char', and we define a separate case.
*/
#define __scalar_type_to_expr_cases(type) \
unsigned type: (unsigned type)0, \
signed type: (signed type)0
#define __unqual_scalar_typeof(x) typeof( \
_Generic((x), \
char: (char)0, \
__scalar_type_to_expr_cases(char), \
__scalar_type_to_expr_cases(short), \
__scalar_type_to_expr_cases(int), \
__scalar_type_to_expr_cases(long), \
__scalar_type_to_expr_cases(long long), \
default: (x)))
#endif /* __LINUX_COMPILER_TYPES_H */