xref: /aosp_15_r20/external/tinyalsa_new/include/tinyalsa/attributes.h (revision 02e95f1a335b55495d41ca67eaf42361f13704fa)
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