1 #ifndef SECURITY_OPENPAM_ATTR_H_INCLUDED
2 #define SECURITY_OPENPAM_ATTR_H_INCLUDED
3 
4 /* GCC attributes */
5 #if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__STRICT_ANSI__)
6 # define OPENPAM_GNUC_PREREQ(maj, min) \
7         ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
8 #else
9 # define OPENPAM_GNUC_PREREQ(maj, min) 0
10 #endif
11 
12 #if OPENPAM_GNUC_PREREQ(2,5)
13 # define OPENPAM_FORMAT(params) __attribute__((__format__ params))
14 #else
15 # define OPENPAM_FORMAT(params)
16 #endif
17 
18 #if OPENPAM_GNUC_PREREQ(3,3)
19 # define OPENPAM_NONNULL(params) __attribute__((__nonnull__ params))
20 #else
21 # define OPENPAM_NONNULL(params)
22 #endif
23 
24 #if OPENPAM_GNUC_PREREQ(2,7)
25 # define OPENPAM_UNUSED(var) var __attribute__((__unused__))
26 #else
27 # define OPENPAM_UNUSED(var) var
28 #endif
29 
30 #endif /* !SECURITY_OPENPAM_ATTR_H_INCLUDED */
31