Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
attributes.hh
Go to the documentation of this file.
1 #ifndef VCSN_MISC_ATTRIBUTES_HH
2 # define VCSN_MISC_ATTRIBUTES_HH
3 
4 # if defined __clang__
5 
6 # define ATTRIBUTE_ALWAYS_INLINE __attribute__((always_inline))
7 # define ATTRIBUTE_CONST __attribute__((const))
8 # define ATTRIBUTE_DLLEXPORT
9 # define ATTRIBUTE_DLLIMPORT
10 # define ATTRIBUTE_HOT __attribute__((hot))
11 # define ATTRIBUTE_NORETURN [[noreturn]]
12 # define ATTRIBUTE_PURE __attribute__((pure))
13 
14 # elif defined __GNUC__
15 
16 # define ATTRIBUTE_ALWAYS_INLINE __attribute__((always_inline))
17 # define ATTRIBUTE_CONST __attribute__((const))
18 # define ATTRIBUTE_DLLEXPORT __attribute__((visibility("default")))
19 # define ATTRIBUTE_DLLIMPORT ATTRIBUTE_DLLEXPORT
20 # define ATTRIBUTE_HOT __attribute__((hot))
21 # define ATTRIBUTE_NORETURN __attribute__((noreturn))
22 # define ATTRIBUTE_PURE __attribute__((pure))
23 
24 # elif defined _MSC_VER
25 
26 # define ATTRIBUTE_ALWAYS_INLINE
27 # define ATTRIBUTE_CONST __declspec(const)
28 # define ATTRIBUTE_DLLEXPORT __declspec(dllexport)
29 # define ATTRIBUTE_DLLIMPORT __declspec(dllimport)
30 # define ATTRIBUTE_HOT
31 # define ATTRIBUTE_NORETURN [[noreturn]]
32 # define ATTRIBUTE_PURE
33 
34 # endif
35 
36 
37 #endif // !VCSN_MISC_ATTRIBUTES_HH