15 #ifndef INCG_IRIS_IUTEST_PRAGMA_HPP_FBC5A1DE_3D0C_443E_84B1_5F0618DF9A6B_
16 #define INCG_IRIS_IUTEST_PRAGMA_HPP_FBC5A1DE_3D0C_443E_84B1_5F0618DF9A6B_
22 #if defined(__clang__)
23 # define IUTEST_PRAGMA(x) _Pragma(#x)
24 #elif defined(__GNUC__)
25 # define IUTEST_PRAGMA(x) _Pragma(#x)
26 #elif defined(_MSC_VER) && _MSC_VER >= 1310
27 # define IUTEST_PRAGMA(x) __pragma(x)
29 # define IUTEST_PRAGMA(x)
32 #define IUTEST_PRAGMA_MESSAGE(m) IUTEST_PRAGMA(message (m))
36 # define IUTEST_PRAGMA_MSC_WARN_PUSH() IUTEST_PRAGMA(warning (push))
37 # define IUTEST_PRAGMA_MSC_WARN_DISABLE(x) IUTEST_PRAGMA(warning (disable: x))
38 # define IUTEST_PRAGMA_MSC_WARN_SUPPRESS(x) IUTEST_PRAGMA(warning (suppress: x))
39 # define IUTEST_PRAGMA_MSC_WARN_POP() IUTEST_PRAGMA(warning (pop))
42 #ifndef IUTEST_PRAGMA_MSC_WARN_PUSH
43 # define IUTEST_PRAGMA_MSC_WARN_PUSH()
45 #ifndef IUTEST_PRAGMA_MSC_WARN_DISABLE
46 # define IUTEST_PRAGMA_MSC_WARN_DISABLE(x)
48 #ifndef IUTEST_PRAGMA_MSC_WARN_POP
49 # define IUTEST_PRAGMA_MSC_WARN_POP()
52 #if defined(__clang__)
53 # define IUTEST_PRAGMA_CLANG_WARN_PUSH() IUTEST_PRAGMA(clang diagnostic push)
54 # define IUTEST_PRAGMA_CLANG_WARN_DISABLE(x) IUTEST_PRAGMA(clang diagnostic ignored x)
55 # define IUTEST_PRAGMA_CLANG_WARN_POP() IUTEST_PRAGMA(clang diagnostic pop)
56 # define IUTEST_PRAGMA_GCC_WARN_PUSH IUTEST_PRAGMA_CLANG_WARN_PUSH
57 # define IUTEST_PRAGMA_GCC_WARN_DISABLE IUTEST_PRAGMA_CLANG_WARN_DISABLE
58 # define IUTEST_PRAGMA_GCC_WARN_POP IUTEST_PRAGMA_CLANG_WARN_POP
62 # if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
63 # define IUTEST_PRAGMA_GCC_WARN_PUSH() IUTEST_PRAGMA(GCC diagnostic push)
64 # define IUTEST_PRAGMA_GCC_WARN_DISABLE(x) IUTEST_PRAGMA(GCC diagnostic ignored x)
65 # define IUTEST_PRAGMA_GCC_WARN_POP() IUTEST_PRAGMA(GCC diagnostic pop)
66 # define IUTEST_PRAGMA_CLANG_WARN_PUSH IUTEST_PRAGMA_GCC_WARN_PUSH
67 # define IUTEST_PRAGMA_CLANG_WARN_DISABLE IUTEST_PRAGMA_GCC_WARN_DISABLE
68 # define IUTEST_PRAGMA_CLANG_WARN_POP IUTEST_PRAGMA_GCC_WARN_POP
72 #ifndef IUTEST_PRAGMA_CLANG_WARN_PUSH
73 # define IUTEST_PRAGMA_CLANG_WARN_PUSH()
75 #ifndef IUTEST_PRAGMA_CLANG_WARN_DISABLE
76 # define IUTEST_PRAGMA_CLANG_WARN_DISABLE(x)
78 #ifndef IUTEST_PRAGMA_CLANG_WARN_POP
79 # define IUTEST_PRAGMA_CLANG_WARN_POP()
82 #ifndef IUTEST_PRAGMA_GCC_WARN_PUSH
83 # define IUTEST_PRAGMA_GCC_WARN_PUSH()
85 #ifndef IUTEST_PRAGMA_GCC_WARN_DISABLE
86 # define IUTEST_PRAGMA_GCC_WARN_DISABLE(x)
88 #ifndef IUTEST_PRAGMA_GCC_WARN_POP
89 # define IUTEST_PRAGMA_GCC_WARN_POP()
92 #if defined(__clang__)
93 # define IUTEST_PRAGMA_WARN_PUSH() IUTEST_PRAGMA_CLANG_WARN_PUSH()
94 # define IUTEST_PRAGMA_WARN_POP() IUTEST_PRAGMA_CLANG_WARN_PUSH()
95 # define IUTEST_PRAGMA_WARN_DISABLE(x) IUTEST_PRAGMA_CLANG_WARN_DISABLE(x)
96 #elif defined(__GNUC__)
97 # define IUTEST_PRAGMA_WARN_PUSH() IUTEST_PRAGMA_GCC_WARN_PUSH()
98 # define IUTEST_PRAGMA_WARN_POP() IUTEST_PRAGMA_GCC_WARN_POP()
99 # define IUTEST_PRAGMA_WARN_DISABLE(x) IUTEST_PRAGMA_GCC_WARN_DISABLE(x)
100 #elif defined(_MSC_VER)
101 # define IUTEST_PRAGMA_WARN_PUSH() IUTEST_PRAGMA_MSC_WARN_PUSH()
102 # define IUTEST_PRAGMA_WARN_POP() IUTEST_PRAGMA_MSC_WARN_POP()
103 # define IUTEST_PRAGMA_WARN_DISABLE(x)
105 # define IUTEST_PRAGMA_WARN_PUSH()
106 # define IUTEST_PRAGMA_WARN_POP()
107 # define IUTEST_PRAGMA_WARN_DISABLE(x)
112 #if defined(_MSC_VER) && defined(__STDC_WANT_SECURE_LIB__) && __STDC_WANT_SECURE_LIB__
113 # if defined(__clang__)
114 # define IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_CLANG_WARN_PUSH() \
115 IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wdeprecated-declarations")
116 # define IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_END() IUTEST_PRAGMA_CLANG_WARN_POP()
118 # define IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_MSC_WARN_PUSH() \
119 IUTEST_PRAGMA_MSC_WARN_DISABLE(4996)
120 # define IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_END() IUTEST_PRAGMA_MSC_WARN_POP()
123 # define IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_BEGIN()
124 # define IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_END()
127 #if defined(__clang__) || defined(__GNUC__)
128 # define IUTEST_PRAGMA_UNUSED_LOCAL_TYPEDEFS_WARN_DISABLE_BEGIN() \
129 IUTEST_PRAGMA_WARN_PUSH() \
130 IUTEST_PRAGMA_WARN_DISABLE("-Wunused-local-typedefs")
131 # define IUTEST_PRAGMA_UNUSED_LOCAL_TYPEDEFS_WARN_DISABLE_END() \
132 IUTEST_PRAGMA_WARN_POP()
134 # define IUTEST_PRAGMA_UNUSED_LOCAL_TYPEDEFS_WARN_DISABLE_BEGIN()
135 # define IUTEST_PRAGMA_UNUSED_LOCAL_TYPEDEFS_WARN_DISABLE_END()
138 #if defined(_MSC_VER)
139 # define IUTEST_PRAGMA_UNREACHCODE_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_MSC_WARN_PUSH() \
140 IUTEST_PRAGMA_MSC_WARN_DISABLE(4702)
141 # define IUTEST_PRAGMA_UNREACHCODE_WARN_DISABLE_END() IUTEST_PRAGMA_MSC_WARN_POP()
143 # define IUTEST_PRAGMA_UNREACHCODE_WARN_DISABLE_BEGIN()
144 # define IUTEST_PRAGMA_UNREACHCODE_WARN_DISABLE_END()
147 #if defined(_MSC_VER) && _MSC_VER < 1700
148 # define IUTEST_PRAGMA_EXTERN_TEMPLATE_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_MSC_WARN_PUSH() \
149 IUTEST_PRAGMA_MSC_WARN_DISABLE(4231)
150 # define IUTEST_PRAGMA_EXTERN_TEMPLATE_WARN_DISABLE_END() IUTEST_PRAGMA_MSC_WARN_POP()
152 # define IUTEST_PRAGMA_EXTERN_TEMPLATE_WARN_DISABLE_BEGIN()
153 # define IUTEST_PRAGMA_EXTERN_TEMPLATE_WARN_DISABLE_END()
156 #if defined(_MSC_VER) && _MSC_VER < 1900
157 # define IUTEST_PRAGMA_ASSIGNMENT_OPERATOR_COULD_NOT_GENERATE_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_MSC_WARN_PUSH() \
158 IUTEST_PRAGMA_MSC_WARN_DISABLE(4512)
159 # define IUTEST_PRAGMA_ASSIGNMENT_OPERATOR_COULD_NOT_GENERATE_WARN_DISABLE_END() IUTEST_PRAGMA_MSC_WARN_POP()
161 # define IUTEST_PRAGMA_ASSIGNMENT_OPERATOR_COULD_NOT_GENERATE_WARN_DISABLE_BEGIN()
162 # define IUTEST_PRAGMA_ASSIGNMENT_OPERATOR_COULD_NOT_GENERATE_WARN_DISABLE_END()
165 #if defined(_MSC_VER) && IUTEST_HAS_CONSTEXPR
166 # define IUTEST_PRAGMA_CONSTEXPR_CALLED_AT_RUNTIME_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_MSC_WARN_PUSH() \
167 IUTEST_PRAGMA_MSC_WARN_DISABLE(4592)
168 # define IUTEST_PRAGMA_CONSTEXPR_CALLED_AT_RUNTIME_WARN_DISABLE_END() IUTEST_PRAGMA_MSC_WARN_POP()
170 # define IUTEST_PRAGMA_CONSTEXPR_CALLED_AT_RUNTIME_WARN_DISABLE_BEGIN()
171 # define IUTEST_PRAGMA_CONSTEXPR_CALLED_AT_RUNTIME_WARN_DISABLE_END()
174 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE)
175 # if defined(__clang__)
176 # define IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wsign-compare")
177 # elif defined(__GNUC__)
178 # define IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wsign-compare")
179 # elif defined(_MSC_VER)
180 # define IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE() IUTEST_PRAGMA_MSC_WARN_DISABLE(4018 4287 4388 4389)
182 # define IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE()
186 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY)
187 # if defined(__clang__)
188 # define IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wempty-body")
189 # elif defined(__GNUC__)
190 # define IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wempty-body")
191 # elif defined(_MSC_VER)
192 # define IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY() IUTEST_PRAGMA_MSC_WARN_DISABLE(4390)
194 # define IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY()
198 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL)
199 # if defined(__clang__)
200 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wfloat-equal")
201 # elif defined(__GNUC__)
202 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wfloat-equal")
203 # elif defined(_MSC_VER)
204 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL()
206 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL()
210 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION)
211 # if defined(__clang__)
212 # if IUTEST_CLANG_MAJOR > 3 || (IUTEST_CLANG_MAJOR == 3 && IUTEST_CLANG_MINOR >= 8)
213 # define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wdouble-promotion")
215 # elif defined(__GNUC__)
217 # define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wdouble-promotion")
219 # elif defined(_MSC_VER)
220 # define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION()
224 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION)
225 # define IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION()
228 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION)
229 # if defined(__clang__)
230 # if IUTEST_CLANG_MAJOR > 3 || (IUTEST_CLANG_MAJOR == 3 && IUTEST_CLANG_MINOR >= 5)
231 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wfloat-conversion")
233 # elif defined(__GNUC__)
234 # if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9))
235 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wfloat-conversion")
237 # elif defined(_MSC_VER)
238 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION() IUTEST_PRAGMA_MSC_WARN_DISABLE(4305)
242 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION)
243 # define IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION()
246 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_FLOAT_CONVERSION)
247 # if defined(__clang__)
248 # if IUTEST_CLANG_MAJOR > 9
249 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_FLOAT_CONVERSION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wimplicit-float-conversion")
254 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_FLOAT_CONVERSION)
255 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_FLOAT_CONVERSION() IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION()
258 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION)
259 # if defined(__clang__)
260 # if IUTEST_CLANG_MAJOR > 9
261 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wimplicit-int-float-conversion")
263 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wconversion")
265 # elif defined(__GNUC__)
266 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION()
267 # elif defined(_MSC_VER)
268 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION()
272 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION)
273 # define IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION()
276 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN)
277 # if defined(__clang__)
278 # define IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wmissing-noreturn")
279 # elif defined(__GNUC__)
280 # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) || __GNUC__ < 4
281 # define IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wmissing-noreturn")
283 # define IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wsuggest-attribute=noreturn")
285 # elif defined(_MSC_VER)
286 # define IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN()
290 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN)
291 # define IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN()
294 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_NARROWING)
295 # if defined(__clang__)
296 # if IUTEST_CLANG_MAJOR > 2
297 # define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wc++11-narrowing")
299 # elif defined(__GNUC__)
300 # if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))
301 # define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wnarrowing")
303 # elif defined(_MSC_VER)
304 # define IUTEST_PRAGMA_WARN_DISABLE_NARROWING() IUTEST_PRAGMA_MSC_WARN_DISABLE(4838)
308 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_NARROWING)
309 # define IUTEST_PRAGMA_WARN_DISABLE_NARROWING()
312 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL)
313 # if defined(__clang__)
314 # define IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wformat-nonliteral")
315 # elif defined(__GNUC__)
316 # define IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wformat-nonliteral")
317 # elif defined(_MSC_VER)
318 # define IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL()
320 # define IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL()
324 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN)
325 # if defined(__clang__)
326 # define IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wcast-align")
327 # elif defined(__GNUC__)
328 # define IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wcast-align")
329 # elif defined(_MSC_VER)
330 # define IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN()
332 # define IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN()
336 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST)
337 # if defined(__clang__)
338 # define IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST()
339 # elif defined(__GNUC__)
340 # define IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST()
341 # elif defined(_MSC_VER)
342 # define IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST() IUTEST_PRAGMA_MSC_WARN_DISABLE(4814)
344 # define IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST()
348 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM)
349 # if defined(__clang__)
350 # define IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wswitch-enum")
351 # elif defined(__GNUC__)
353 # define IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wswitch-enum")
355 # define IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wswitch")
357 # elif defined(_MSC_VER)
358 # define IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM() IUTEST_PRAGMA_MSC_WARN_DISABLE(4061)
362 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM)
363 # define IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM()
366 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE)
367 # if defined(__clang__)
368 # if (IUTEST_CLANG_MAJOR > 3 || (IUTEST_CLANG_MAJOR == 3 && IUTEST_CLANG_MINOR > 0))
369 # define IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wdangling-else")
371 # elif defined(__GNUC__)
373 # define IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wdangling-else")
375 # elif defined(_MSC_VER)
376 # define IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE()
380 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE)
381 # define IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE()
384 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_NOEXCEPT_TPYE)
385 # if defined(__GNUC__) && (__GNUC__ > 6)
386 # define IUTEST_PRAGMA_WARN_DISABLE_NOEXCEPT_TPYE() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wnoexcept-type")
390 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_NOEXCEPT_TPYE)
391 # define IUTEST_PRAGMA_WARN_DISABLE_NOEXCEPT_TPYE()
394 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_NONNULL)
395 # if defined(__clang__)
396 # define IUTEST_PRAGMA_WARN_DISABLE_NONNULL() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wnonnull")
397 # elif defined(__GNUC__)
398 # define IUTEST_PRAGMA_WARN_DISABLE_NONNULL() IUTEST_PRAGMA_GCC_WARN_DISABLE("-Wnonnull")
399 # elif defined(_MSC_VER)
400 # define IUTEST_PRAGMA_WARN_DISABLE_NONNULL() IUTEST_PRAGMA_MSC_WARN_DISABLE(6387)
404 #if !defined(IUTEST_PRAGMA_WARN_DISABLE_NONNULL)
405 # define IUTEST_PRAGMA_WARN_DISABLE_NONNULL()
408 #if defined(__clang__)
409 # if IUTEST_CLANG_MAJOR > 10
410 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_11() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wsuggest-destructor-override")
412 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_11()
414 # if IUTEST_CLANG_MAJOR > 4
415 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_5() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wzero-as-null-pointer-constant")
417 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_5()
419 # if IUTEST_CLANG_MAJOR > 2
420 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_3() IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wexit-time-destructors")
422 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_3()
425 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_CLANG_WARN_PUSH() \
426 IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wused-but-marked-unused") \
427 IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wold-style-cast") \
428 IUTEST_PRAGMA_CLANG_WARN_DISABLE("-Wunused-macros") \
429 IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_11() \
430 IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_5() \
431 IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_3()
433 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_END() IUTEST_PRAGMA_CLANG_WARN_POP()
434 #elif defined(__GNUC__)
435 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_GCC_WARN_PUSH()
436 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_END() IUTEST_PRAGMA_GCC_WARN_POP()
437 #elif defined(_MSC_VER)
438 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_BEGIN() IUTEST_PRAGMA_MSC_WARN_PUSH()
439 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_END() IUTEST_PRAGMA_MSC_WARN_POP()
441 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_BEGIN()
442 # define IUTEST_PRAGMA_IUTEST_WARN_DISABLE_END()