How to detect LLVM and its version through #define directives?

后端 未结 8 1289
广开言路
广开言路 2020-12-24 04:33

The question is quite clear I think. I\'m trying to write a compiler detection header to be able to include in the application information on which compiler was used and whi

8条回答
  •  旧巷少年郎
    2020-12-24 05:24

    The __llvm__ and __clang__ macros are the official way to check for an LLVM compiler (llvm-gcc or clang) or clang, respectively.

    __has_feature and __has_builtin are the recommended way of checking for optional compiler features when using clang, they are documented here.

    Note that you can find a list of the builtin compiler macros for gcc, llvm-gcc, and clang using:

    echo | clang -dM -E -
    

    This preprocesses an empty string and spits out all macros defined by the compiler.

提交回复
热议问题