cMHN 1.1
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