libosmocore  0.6.3
Osmocom core library
defs.h
Go to the documentation of this file.
1 #ifndef OSMOCORE_DEFS_H
2 #define OSMOCORE_DEFS_H
3 
20 #if defined __GNUC__ && defined __GNUC_MINOR__
21 # define OSMO_GNUC_PREREQ(maj, min) \
22  ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
23 #else
24 # define OSMO_GNUC_PREREQ(maj, min) 0
25 #endif
26 
29 #if defined(__clang__)
30 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED __has_attribute(deprecated)
31 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE __has_extension(attribute_deprecated_with_message)
32 #elif defined(__GNUC__)
33 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED 1
34 # define _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE OSMO_GNUC_PREREQ(4,5)
35 #endif
36 
37 #if _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE
38 # define OSMO_DEPRECATED(text) __attribute__((__deprecated__(text)))
39 #elif _OSMO_HAS_ATTRIBUTE_DEPRECATED
40 # define OSMO_DEPRECATED(text) __attribute__((__deprecated__))
41 #else
42 # define OSMO_DEPRECATED(text)
43 #endif
44 
45 #undef _OSMO_HAS_ATTRIBUTE_DEPRECATED_WITH_MESSAGE
46 #undef _OSMO_HAS_ATTRIBUTE_DEPRECATED
47 
50 #endif