libosmocore  0.9.3
Osmocom core library
include/osmocom/core/defs.h
Go to the documentation of this file.
00001 #pragma once
00002 
00019 #if defined __GNUC__ && defined __GNUC_MINOR__
00020 # define OSMO_GNUC_PREREQ(maj, min) \
00021         ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
00022 #else
00023 # define OSMO_GNUC_PREREQ(maj, min) 0
00024 #endif
00025 
00028 #if defined(__clang__)
00029 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED __has_attribute(deprecated)
00030 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE __has_extension(attribute_deprecated_with_message)
00031 #elif defined(__GNUC__)
00032 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED 1
00033 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE OSMO_GNUC_PREREQ(4,5)
00034 #endif
00035 
00036 #if _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE
00037 # define OSMO_DEPRECATED(text)  __attribute__((__deprecated__(text)))
00038 #elif _OSMO_HAS_ATTRIBUTE_DEPRECATED
00039 # define OSMO_DEPRECATED(text)  __attribute__((__deprecated__))
00040 #else
00041 # define OSMO_DEPRECATED(text)
00042 #endif
00043 
00044 #undef _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE
00045 #undef _OSMO_HAS_ATTRIBUTE_DEPRECATED
00046