cMHN 1.2
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
pragma.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-2-Clause
2
3#ifndef pRC_PRAGMA_H
4#define pRC_PRAGMA_H
5
6#define DO_PRAGMA(x) _Pragma(#x)
7
8#if defined(__clang__)
9
10 #define BEGIN_IGNORE_DIAGNOSTIC(warning) \
11 _Pragma("clang diagnostic push") \
12 DO_PRAGMA(GCC diagnostic ignored warning)
13
14 #define END_IGNORE_DIAGNOSTIC _Pragma("clang diagnostic pop")
15
16 #define BEGIN_IGNORE_DIAGNOSTIC_GCC(warning)
17 #define END_IGNORE_DIAGNOSTIC_GCC
18
19 #define BEGIN_IGNORE_DIAGNOSTIC_CLANG(warning) \
20 BEGIN_IGNORE_DIAGNOSTIC(warning)
21 #define END_IGNORE_DIAGNOSTIC_CLANG END_IGNORE_DIAGNOSTIC
22
23#elif defined(__GNUC__)
24
25 #define BEGIN_IGNORE_DIAGNOSTIC(warning) \
26 _Pragma("GCC diagnostic push") DO_PRAGMA(GCC diagnostic ignored warning)
27
28 #define END_IGNORE_DIAGNOSTIC _Pragma("GCC diagnostic pop")
29
30 #define BEGIN_IGNORE_DIAGNOSTIC_GCC(warning) \
31 BEGIN_IGNORE_DIAGNOSTIC(warning)
32 #define END_IGNORE_DIAGNOSTIC_GCC END_IGNORE_DIAGNOSTIC
33
34 #define BEGIN_IGNORE_DIAGNOSTIC_CLANG(warning)
35 #define END_IGNORE_DIAGNOSTIC_CLANG
36
37#else
38
39 #define BEGIN_IGNORE_DIAGNOSTIC(warning)
40 #define END_IGNORE_DIAGNOSTIC
41
42 #define BEGIN_IGNORE_DIAGNOSTIC_GCC(warning)
43 #define END_IGNORE_DIAGNOSTIC_GCC
44
45 #define BEGIN_IGNORE_DIAGNOSTIC_CLANG(warning)
46 #define END_IGNORE_DIAGNOSTIC_CLANG
47
48#endif
49
50#endif // pRC_PRAGMA_H