This introduces the macro TOOLCHAIN_HAS_C_AUTO_TYPE to
indicate that the toolchain supports __auto_type. This is
supported since GCC 4.9.0 and Clang 3.8.0.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This introduces the macro TOOLCHAIN_HAS_C_GENERIC to indicate
that the toolchain supports C Generic (i.e. _Generic keyword).
This is introduced in C11, and is also supported since GCC 4.9.0
and Clang 3.8.0.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This introduces the macro TOOLCHAIN_HAS_PRAGMA_DIAG to indicate
that the toolchain supports #pragma diagnostics. This is
supported since GCC 4.6.0 and, AFAIK, all Clang.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
LLVM defines __GNUC__ to 4 so the __fallthrough is nothing
through include/toolchain/gcc.h. So add a few lines for
a functional __fallthrough macro for LLVM. The fallthrough
attribute is supported since Clang 10.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Add abstraction for llvm to allow for toolchain customizations that are
different from the gcc defaults.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>