Skip to content

Compiler Identification

include/compiler/name.h View source View on GitHub

cn_* “Compiler Name”, cn_id_* “Compiler Identity”

#define cn_has_builtin(x)
source
Expansion
#define cn_has_builtin(x) __has_builtin(x)
#define cn_has_builtin(x)
source
Expansion
#define cn_has_builtin(x) 0
#define cn_has_attribute(x)
source
Expansion
#define cn_has_attribute(x) __has_attribute(x)
#define cn_has_attribute(x)
source
Expansion
#define cn_has_attribute(x) 0
#define cn_has_feature(x)
source
Expansion
#define cn_has_feature(x) __has_feature(x)
#define cn_has_feature(x)
source
Expansion
#define cn_has_feature(x) 0
#define cn_has_extension(x)
source
Expansion
#define cn_has_extension(x) __has_extension(x)
#define cn_has_extension(x)
source
Expansion
#define cn_has_extension(x) 0
#define cn_has_warning(x)
source
Expansion
#define cn_has_warning(x) __has_warning(x)
#define cn_has_warning(x)
source
Expansion
#define cn_has_warning(x) 0
#define cn_has_include(x)
source
Expansion
#define cn_has_include(x) __has_include(x)
#define cn_has_include(x)
source
Expansion
#define cn_has_include(x) 0
#define cn_id_clang
source
#define cn_id_clang_major __clang_major__
source
#define cn_id_clang_minor __clang_minor__
source
#define cn_id_clang_patch __clang_patchlevel__
source
#define cn_id_clang_version
source
Expansion
#define cn_id_clang_version \
    ((__clang_major__ * 10000) + (__clang_minor__ * 100) + __clang_patchlevel__)
#define cn_id_gcc
source
#define cn_id_gcc_major __GNUC__
source
#define cn_id_gcc_minor __GNUC_MINOR__
source
#define cn_id_gcc_patch __GNUC_PATCHLEVEL__
source
#define cn_id_gcc_version
source
Expansion
#define cn_id_gcc_version \
    ((__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + __GNUC_PATCHLEVEL__)
#define cn_id_clang_at_least(maj, min)
source
Expansion
#define cn_id_clang_at_least(maj, min) \
    ((cn_id_clang_major > (maj)) || \
     (cn_id_clang_major == (maj) && cn_id_clang_minor >= (min)))
#define cn_id_clang_at_least(maj, min)
source
Expansion
#define cn_id_clang_at_least(maj, min) 0
#define cn_id_gcc_at_least(maj, min)
source
Expansion
#define cn_id_gcc_at_least(maj, min) \
    ((cn_id_gcc_major > (maj)) || \
     (cn_id_gcc_major == (maj) && cn_id_gcc_minor >= (min)))
#define cn_id_gcc_at_least(maj, min)
source
Expansion
#define cn_id_gcc_at_least(maj, min) 0
#define cn_id_name "Clang"
source
#define cn_id_name "GCC"
source
#define cn_id_name "Unknown"
source