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