1*b19cfb91SCarlos Alberto Enciso //----------------------------------------------------------------------------- 2*b19cfb91SCarlos Alberto Enciso // Definitions. 3*b19cfb91SCarlos Alberto Enciso //----------------------------------------------------------------------------- 4*b19cfb91SCarlos Alberto Enciso #ifndef SUITE_DEFINITIONS_H 5*b19cfb91SCarlos Alberto Enciso #define SUITE_DEFINITIONS_H 6*b19cfb91SCarlos Alberto Enciso 7*b19cfb91SCarlos Alberto Enciso #ifdef _MSC_VER 8*b19cfb91SCarlos Alberto Enciso #define forceinline __forceinline 9*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_OFF __pragma(optimize("", off)) 10*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_ON __pragma(optimize("", on)) 11*b19cfb91SCarlos Alberto Enciso #elif defined(__clang__) 12*b19cfb91SCarlos Alberto Enciso #if __has_attribute(__always_inline__) 13*b19cfb91SCarlos Alberto Enciso #define forceinline inline __attribute__((__always_inline__)) 14*b19cfb91SCarlos Alberto Enciso #else 15*b19cfb91SCarlos Alberto Enciso #define forceinline inline 16*b19cfb91SCarlos Alberto Enciso #endif 17*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_OFF _Pragma("clang optimize off") 18*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_ON _Pragma("clang optimize on") 19*b19cfb91SCarlos Alberto Enciso #elif defined(__GNUC__) 20*b19cfb91SCarlos Alberto Enciso #define forceinline inline __attribute__((__always_inline__)) 21*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_OFF _Pragma("GCC optimize off") 22*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_ON _Pragma("GCC optimize on") 23*b19cfb91SCarlos Alberto Enciso #else 24*b19cfb91SCarlos Alberto Enciso #define forceinline inline 25*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_OFF 26*b19cfb91SCarlos Alberto Enciso #define OPTIMIZE_ON 27*b19cfb91SCarlos Alberto Enciso #error 28*b19cfb91SCarlos Alberto Enciso #endif 29*b19cfb91SCarlos Alberto Enciso 30*b19cfb91SCarlos Alberto Enciso #endif // SUITE_DEFINITIONS_H 31