xref: /llvm-project/llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/definitions.h (revision b19cfb9175223d3e1bb3ef6d49ccd26d0104906c)
1 //-----------------------------------------------------------------------------
2 // Definitions.
3 //-----------------------------------------------------------------------------
4 #ifndef SUITE_DEFINITIONS_H
5 #define SUITE_DEFINITIONS_H
6 
7 #ifdef _MSC_VER
8 #define forceinline __forceinline
9 #define OPTIMIZE_OFF __pragma(optimize("", off))
10 #define OPTIMIZE_ON  __pragma(optimize("", on))
11 #elif defined(__clang__)
12 #if __has_attribute(__always_inline__)
13 #define forceinline inline __attribute__((__always_inline__))
14 #else
15 #define forceinline inline
16 #endif
17 #define OPTIMIZE_OFF _Pragma("clang optimize off")
18 #define OPTIMIZE_ON  _Pragma("clang optimize on")
19 #elif defined(__GNUC__)
20 #define forceinline inline __attribute__((__always_inline__))
21 #define OPTIMIZE_OFF _Pragma("GCC optimize off")
22 #define OPTIMIZE_ON  _Pragma("GCC optimize on")
23 #else
24 #define forceinline inline
25 #define OPTIMIZE_OFF
26 #define OPTIMIZE_ON
27 #error
28 #endif
29 
30 #endif // SUITE_DEFINITIONS_H
31