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