blob: 0a3eb0c0d66198ef0320feb6b744a1ff3306d949 [file] [log] [blame]
Jim Flynnbbfe6032020-07-20 16:57:44 +01001//
2// Copyright © 2019 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#if __GNUC__
9# define ARM_PIPE_NO_CONVERSION_WARN_BEGIN \
10 _Pragma("GCC diagnostic push") \
11 _Pragma("GCC diagnostic ignored \"-Wconversion\"") \
12 _Pragma("GCC diagnostic ignored \"-Wsign-conversion\"")
13
14# define ARM_PIPE_NO_CONVERSION_WARN_END \
15 _Pragma("GCC diagnostic pop")
16
17#elif __clang__
18# define ARM_PIPE_NO_CONVERSION_WARN_BEGIN \
19 _Pragma("clang diagnostic push") \
20 _Pragma("clang diagnostic ignored \"-Wconversion\"") \
21 _Pragma("clang diagnostic ignored \"-Wsign-conversion\"")
22
23# define ARM_PIPE_NO_CONVERSION_WARN_END \
24 _Pragma("clang diagnostic pop")
25
26#elif defined (_MSC_VER)
27# define ARM_PIPE_NO_CONVERSION_WARN_BEGIN \
28 __pragma(warning( push )) \
29 __pragma(warning(disable : 4101)) \
30 __pragma(warning(disable : 4267))
31
32# define ARM_PIPE_NO_CONVERSION_WARN_END \
33 __pragma(warning( pop ))
34
35#else
36# define ARM_PIPE_NO_CONVERSION_WARN_BEGIN
37# define ARM_PIPE_NO_CONVERSION_WARN_END
38#endif
39
40#define ARM_PIPE_SUPRESS_CONVERSION_WARNING(func) \
41ARM_PIPE_NO_CONVERSION_WARN_BEGIN \
42func; \
43ARM_PIPE_NO_CONVERSION_WARN_END