1f23594ceSHasso Tepper /* 2*10b5fe87SSascha Wildner * $OpenPAM: openpam_attr.h 938 2017-04-30 21:34:42Z des $ 3f23594ceSHasso Tepper */ 4f23594ceSHasso Tepper 5*10b5fe87SSascha Wildner #ifndef SECURITY_OPENPAM_ATTR_H_INCLUDED 6*10b5fe87SSascha Wildner #define SECURITY_OPENPAM_ATTR_H_INCLUDED 7f23594ceSHasso Tepper 8f23594ceSHasso Tepper /* GCC attributes */ 9f23594ceSHasso Tepper #if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__STRICT_ANSI__) 10f23594ceSHasso Tepper # define OPENPAM_GNUC_PREREQ(maj, min) \ 11f23594ceSHasso Tepper ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) 12f23594ceSHasso Tepper #else 13f23594ceSHasso Tepper # define OPENPAM_GNUC_PREREQ(maj, min) 0 14f23594ceSHasso Tepper #endif 15f23594ceSHasso Tepper 16f23594ceSHasso Tepper #if OPENPAM_GNUC_PREREQ(2,5) 17f23594ceSHasso Tepper # define OPENPAM_FORMAT(params) __attribute__((__format__ params)) 18f23594ceSHasso Tepper #else 19f23594ceSHasso Tepper # define OPENPAM_FORMAT(params) 20f23594ceSHasso Tepper #endif 21f23594ceSHasso Tepper 22f23594ceSHasso Tepper #if OPENPAM_GNUC_PREREQ(3,3) 23f23594ceSHasso Tepper # define OPENPAM_NONNULL(params) __attribute__((__nonnull__ params)) 24f23594ceSHasso Tepper #else 25f23594ceSHasso Tepper # define OPENPAM_NONNULL(params) 26f23594ceSHasso Tepper #endif 27f23594ceSHasso Tepper 28*10b5fe87SSascha Wildner #if OPENPAM_GNUC_PREREQ(2,7) 29*10b5fe87SSascha Wildner # define OPENPAM_UNUSED(var) var __attribute__((__unused__)) 30*10b5fe87SSascha Wildner #else 31*10b5fe87SSascha Wildner # define OPENPAM_UNUSED(var) var 32*10b5fe87SSascha Wildner #endif 33*10b5fe87SSascha Wildner 34*10b5fe87SSascha Wildner #endif /* !SECURITY_OPENPAM_ATTR_H_INCLUDED */ 35