Move use of __warnattr to __deprecated.

clang don't support warning attribute. Replacing warning attriubte with
deprecated attribute can achieve the same behavior whether compiled by
gcc or clang.

Bug: 19340053
Change-Id: I064432b81cf55212458edbc749eb72dc15a810fb
This commit is contained in:
Yabin Cui 2015-02-17 12:39:39 -08:00
parent fb48c68221
commit 4645c4f62d
3 changed files with 12 additions and 8 deletions

View file

@ -266,16 +266,16 @@ int vdprintf(int, const char * __restrict, __va_list) __printflike(2, 0);
#ifndef __AUDIT__
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
char* gets(char*) __warnattr("gets is very unsafe; consider using fgets");
char* gets(char*) __deprecated("gets is very unsafe; consider using fgets");
#endif
int sprintf(char* __restrict, const char* __restrict, ...)
__printflike(2, 3) __warnattr("sprintf is often misused; please use snprintf");
char* tmpnam(char*) __warnattr("tmpnam possibly used unsafely; consider using mkstemp");
__printflike(2, 3) __deprecated("sprintf is often misused; please use snprintf");
char* tmpnam(char*) __deprecated("tmpnam possibly used unsafely; consider using mkstemp");
int vsprintf(char* __restrict, const char* __restrict, __va_list)
__printflike(2, 0) __warnattr("vsprintf is often misused; please use vsnprintf");
__printflike(2, 0) __deprecated("vsprintf is often misused; please use vsnprintf");
#if __XPG_VISIBLE
char* tempnam(const char*, const char*)
__warnattr("tempnam possibly used unsafely; consider using mkstemp");
__deprecated("tempnam possibly used unsafely; consider using mkstemp");
#endif
#endif

View file

@ -58,7 +58,7 @@ extern int unsetenv(const char*);
extern int clearenv(void);
extern char* mkdtemp(char*);
extern char* mktemp(char*) __warnattr("mktemp possibly used unsafely; consider using mkstemp");
extern char* mktemp(char*) __deprecated("mktemp possibly used unsafely; consider using mkstemp");
extern int mkostemp64(char*, int);
extern int mkostemp(char*, int);

View file

@ -334,12 +334,16 @@
#define __wur
#endif
#if __GNUC_PREREQ(3, 2)
#define __deprecated(msg) __attribute__ ((deprecated(msg)))
#else
#define __deprecated(msg)
#endif
#if __GNUC_PREREQ(4, 3)
#define __errorattr(msg) __attribute__((__error__(msg)))
#define __warnattr(msg) __attribute__((__warning__(msg)))
#else
#define __errorattr(msg)
#define __warnattr(msg)
#endif
#define __errordecl(name, msg) extern void name(void) __errorattr(msg)