aboutsummaryrefslogtreecommitdiff
path: root/llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/definitions.h
blob: dfbd3db044dd808f77f491cd43854f9268d9c00a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//-----------------------------------------------------------------------------
// Definitions.
//-----------------------------------------------------------------------------
#ifndef SUITE_DEFINITIONS_H
#define SUITE_DEFINITIONS_H

#ifdef _MSC_VER
#define forceinline __forceinline
#define OPTIMIZE_OFF __pragma(optimize("", off))
#define OPTIMIZE_ON  __pragma(optimize("", on))
#elif defined(__clang__)
#if __has_attribute(__always_inline__)
#define forceinline inline __attribute__((__always_inline__))
#else
#define forceinline inline
#endif
#define OPTIMIZE_OFF _Pragma("clang optimize off")
#define OPTIMIZE_ON  _Pragma("clang optimize on")
#elif defined(__GNUC__)
#define forceinline inline __attribute__((__always_inline__))
#define OPTIMIZE_OFF _Pragma("GCC optimize off")
#define OPTIMIZE_ON  _Pragma("GCC optimize on")
#else
#define forceinline inline
#define OPTIMIZE_OFF
#define OPTIMIZE_ON
#error
#endif

#endif // SUITE_DEFINITIONS_H