base: compiler detection for internal usage
authorMarko Kreen <markokr@gmail.com>
Thu, 5 Apr 2012 13:45:22 +0000 (16:45 +0300)
committerMarko Kreen <markokr@gmail.com>
Thu, 5 Apr 2012 13:45:22 +0000 (16:45 +0300)
usual/base.h

index 1941ef180efffa78519a27dca5a6a91e26c2f48d..0846ff148a410ba127de8823881b1cf042237749 100644 (file)
  * @name Compiler attributes.
  */
 
+/* Compiler detection for internal usage.  */
+#define _COMPILER_GNUC(maj,min) (defined(__GNUC__) && \
+         ((__GNUC__ > (maj)) || (__GNUC__ == (maj) && __GNUC_MINOR__ >= (min))))
+#define _COMPILER_CLANG(maj,min) (defined(__clang__) && \
+          ((__clang_major__ > (maj)) || (__clang_major__ == (maj) && __clang_minor__ >= (min))))
+#define _COMPILER_MSC(ver) (defined(_MSC_VER) && (_MSC_VER >= (ver)))
+#define _COMPILER_ICC(ver) (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= (ver)))
+
 /** Disable padding for structure */
 #define _PACKED                        __attribute__((packed))