1*02e95f1aSMarcin Radomski #ifndef TINYALSA_ATTRIBUTES_H 2*02e95f1aSMarcin Radomski #define TINYALSA_ATTRIBUTES_H 3*02e95f1aSMarcin Radomski 4*02e95f1aSMarcin Radomski /** @defgroup libtinyalsa-attributes 5*02e95f1aSMarcin Radomski * @brief GCC attributes to issue diagnostics 6*02e95f1aSMarcin Radomski * when the library is being used incorrectly. 7*02e95f1aSMarcin Radomski * */ 8*02e95f1aSMarcin Radomski 9*02e95f1aSMarcin Radomski // FIXME: Disable the deprecated attribute in Android temporarily. pcm_read/write are marked as 10*02e95f1aSMarcin Radomski // deprecated functions in the latest tinyalsa in GitHub. However, there are lots of libraries in 11*02e95f1aSMarcin Radomski // Android using these functions and building with -Werror flags. Besides build breakage, the 12*02e95f1aSMarcin Radomski // behavior and interface of the successors, pcm_readi/writei, are also changed. Once all have 13*02e95f1aSMarcin Radomski // been cleaned up, we will enable this again. 14*02e95f1aSMarcin Radomski #if defined(__GNUC__) && !defined(ANDROID) 15*02e95f1aSMarcin Radomski 16*02e95f1aSMarcin Radomski /** Issues a warning when a function is being 17*02e95f1aSMarcin Radomski * used that is now deprecated. 18*02e95f1aSMarcin Radomski * @ingroup libtinyalsa-attributes 19*02e95f1aSMarcin Radomski * */ 20*02e95f1aSMarcin Radomski #define TINYALSA_DEPRECATED __attribute__((deprecated)) 21*02e95f1aSMarcin Radomski 22*02e95f1aSMarcin Radomski /** Issues a warning when a return code of 23*02e95f1aSMarcin Radomski * a function is not checked. 24*02e95f1aSMarcin Radomski * @ingroup libtinyalsa-attributes 25*02e95f1aSMarcin Radomski * */ 26*02e95f1aSMarcin Radomski #define TINYALSA_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 27*02e95f1aSMarcin Radomski 28*02e95f1aSMarcin Radomski #else /* __GNUC__ && !ANDROID */ 29*02e95f1aSMarcin Radomski 30*02e95f1aSMarcin Radomski /** This is just a placeholder for compilers 31*02e95f1aSMarcin Radomski * that aren't GCC or Clang. 32*02e95f1aSMarcin Radomski * @ingroup libtinyalsa-attributes 33*02e95f1aSMarcin Radomski * */ 34*02e95f1aSMarcin Radomski #define TINYALSA_DEPRECATED 35*02e95f1aSMarcin Radomski 36*02e95f1aSMarcin Radomski /** This is just a placeholder for compilers 37*02e95f1aSMarcin Radomski * that aren't GCC or Clang. 38*02e95f1aSMarcin Radomski * @ingroup libtinyalsa-attributes 39*02e95f1aSMarcin Radomski * */ 40*02e95f1aSMarcin Radomski #define TINYALSA_WARN_UNUSED_RESULT 41*02e95f1aSMarcin Radomski 42*02e95f1aSMarcin Radomski #endif /* __GNUC__ && !ANDROID */ 43*02e95f1aSMarcin Radomski 44*02e95f1aSMarcin Radomski #endif /* TINYALSA_ATTRIBUTES_H */ 45