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