1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #pragma once 7 8 #if __GNUC__ 9 # define ARMNN_NO_DEPRECATE_WARN_BEGIN \ 10 _Pragma("GCC diagnostic push") \ 11 _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") 12 13 # define ARMNN_NO_DEPRECATE_WARN_END \ 14 _Pragma("GCC diagnostic pop") 15 16 #elif __clang__ 17 # define ARMNN_NO_DEPRECATE_WARN_BEGIN \ 18 _Pragma("clang diagnostic push") \ 19 _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") 20 21 # define ARMNN_NO_DEPRECATE_WARN_END \ 22 _Pragma("clang diagnostic pop") 23 24 #elif defined (_MSC_VER) 25 # define ARMNN_NO_DEPRECATE_WARN_BEGIN \ 26 __pragma(warning( push )) \ 27 __pragma(warning(disable : 4996)) 28 29 # define ARMNN_NO_DEPRECATE_WARN_END \ 30 __pragma(warning( pop )) 31 32 #else 33 # define ARMNN_NO_DEPRECATE_WARN_BEGIN 34 # define ARMNN_NO_DEPRECATE_WARN_END 35 #endif 36 37 #define ARMNN_SUPPRESS_DEPRECATE_WARNING(func) \ 38 ARMNN_NO_DEPRECATE_WARN_BEGIN \ 39 func; \ 40 ARMNN_NO_DEPRECATE_WARN_END 41 42 #define ARMNN_DEPRECATED [[deprecated]] 43 #define ARMNN_DEPRECATED_MSG(message) [[deprecated(message)]] 44 #define ARMNN_DEPRECATED_MSG_REMOVAL_DATE(message, removed_in_release) \ 45 [[deprecated("Expected to be removed in release " #removed_in_release ". " message)]] 46 #define ARMNN_DEPRECATED_MSG_CHANGE_DATE(message, signature_changed_in_release) \ 47 [[deprecated("Expected to have signature changed in release " #signature_changed_in_release ". " message)]] 48 49 #if defined(__GNUC__) && (__GNUC__ < 6) 50 # define ARMNN_DEPRECATED_ENUM 51 # define ARMNN_DEPRECATED_ENUM_MSG(message) 52 #else 53 # define ARMNN_DEPRECATED_ENUM ARMNN_DEPRECATED 54 # define ARMNN_DEPRECATED_ENUM_MSG(message) ARMNN_DEPRECATED_MSG(message) 55 #endif