Rename __pure, __pure2, and __purefunc.

These names were pretty misleading (aka "backwards"), so switch to the
same obvious names glibc uses.

Test: build.
Change-Id: Ia98c9dbbccd0820386116562347654e84669034a
diff --git a/libc/include/android/legacy_string_inlines.h b/libc/include/android/legacy_string_inlines.h
index af84f55..ceab909 100644
--- a/libc/include/android/legacy_string_inlines.h
+++ b/libc/include/android/legacy_string_inlines.h
@@ -24,8 +24,8 @@
 
 #if __ANDROID_API__ < 21
 
-static __inline __purefunc int strcoll_l(const char* _Nonnull s1, const char* _Nonnull s2,
-                              locale_t l __unused)  {
+static __inline __attribute_pure__ int strcoll_l(const char* _Nonnull s1, const char* _Nonnull s2,
+                                                 locale_t l __unused)  {
   return strcoll(s1, s2);
 }
 
diff --git a/libc/include/bits/strcasecmp.h b/libc/include/bits/strcasecmp.h
index 7cb713e..df1a6b8 100644
--- a/libc/include/bits/strcasecmp.h
+++ b/libc/include/bits/strcasecmp.h
@@ -35,10 +35,10 @@
 
 __BEGIN_DECLS
 
-int strcasecmp(const char*, const char*) __purefunc;
-int strcasecmp_l(const char*, const char*, locale_t) __purefunc __INTRODUCED_IN(23);
-int strncasecmp(const char*, const char*, size_t) __purefunc;
-int strncasecmp_l(const char*, const char*, size_t, locale_t) __purefunc __INTRODUCED_IN(23);
+int strcasecmp(const char*, const char*) __attribute_pure__;
+int strcasecmp_l(const char*, const char*, locale_t) __attribute_pure__ __INTRODUCED_IN(23);
+int strncasecmp(const char*, const char*, size_t) __attribute_pure__;
+int strncasecmp_l(const char*, const char*, size_t, locale_t) __attribute_pure__ __INTRODUCED_IN(23);
 
 __END_DECLS
 
diff --git a/libc/include/errno.h b/libc/include/errno.h
index 8b2e8ed..3f4cff9 100644
--- a/libc/include/errno.h
+++ b/libc/include/errno.h
@@ -41,7 +41,7 @@
 #endif
 
 /* internal function returning the address of the thread-specific errno */
-volatile int* __errno(void) __pure2;
+volatile int* __errno(void) __attribute_const__;
 
 /* a macro expanding to the errno l-value */
 #define  errno   (*__errno())
diff --git a/libc/include/inttypes.h b/libc/include/inttypes.h
index 54b5ee2..2c268e6 100644
--- a/libc/include/inttypes.h
+++ b/libc/include/inttypes.h
@@ -254,8 +254,8 @@
 } imaxdiv_t;
 
 __BEGIN_DECLS
-intmax_t imaxabs(intmax_t) __pure2 __INTRODUCED_IN(19);
-imaxdiv_t imaxdiv(intmax_t, intmax_t) __pure2 __INTRODUCED_IN(19);
+intmax_t imaxabs(intmax_t) __attribute_const__ __INTRODUCED_IN(19);
+imaxdiv_t imaxdiv(intmax_t, intmax_t) __attribute_const__ __INTRODUCED_IN(19);
 intmax_t	strtoimax(const char *, char **, int);
 uintmax_t	strtoumax(const char *, char **, int);
 intmax_t wcstoimax(const wchar_t* __restrict, wchar_t** __restrict, int) __INTRODUCED_IN(21);
diff --git a/libc/include/math.h b/libc/include/math.h
index 4437b81..d9896fc 100644
--- a/libc/include/math.h
+++ b/libc/include/math.h
@@ -86,25 +86,25 @@
 /*
  * Most of these functions depend on the rounding mode and have the side
  * effect of raising floating-point exceptions, so they are not declared
- * as __pure2.  In C99, FENV_ACCESS affects the purity of these functions.
+ * as __attribute_const__. In C99, FENV_ACCESS affects the purity of these functions.
  */
 
-int __fpclassifyd(double) __pure2;
-int __fpclassifyf(float) __pure2;
-int __fpclassifyl(long double) __pure2;
-int __isfinitef(float) __pure2;
-int __isfinite(double) __pure2;
-int __isfinitel(long double) __pure2;
-int __isinff(float) __pure2;
-int __isinfl(long double) __pure2;
-int __isnanf(float) __pure2 __INTRODUCED_IN(21);
-int __isnanl(long double) __pure2;
-int __isnormalf(float) __pure2;
-int __isnormal(double) __pure2;
-int __isnormall(long double) __pure2;
-int __signbit(double) __pure2;
-int __signbitf(float) __pure2;
-int __signbitl(long double) __pure2;
+int __fpclassifyd(double) __attribute_const__;
+int __fpclassifyf(float) __attribute_const__;
+int __fpclassifyl(long double) __attribute_const__;
+int __isfinitef(float) __attribute_const__;
+int __isfinite(double) __attribute_const__;
+int __isfinitel(long double) __attribute_const__;
+int __isinff(float) __attribute_const__;
+int __isinfl(long double) __attribute_const__;
+int __isnanf(float) __attribute_const__ __INTRODUCED_IN(21);
+int __isnanl(long double) __attribute_const__;
+int __isnormalf(float) __attribute_const__;
+int __isnormal(double) __attribute_const__;
+int __isnormall(long double) __attribute_const__;
+int __signbit(double) __attribute_const__;
+int __signbitf(float) __attribute_const__;
+int __signbitl(long double) __attribute_const__;
 
 double	acos(double);
 double	asin(double);
@@ -119,17 +119,17 @@
 double	tanh(double);
 
 double	exp(double);
-double	frexp(double, int *);	/* fundamentally !__pure2 */
+double	frexp(double, int *);	/* fundamentally !__attribute_const__ */
 double	ldexp(double, int);
 double	log(double);
 double	log10(double);
-double	modf(double, double *);	/* fundamentally !__pure2 */
+double	modf(double, double *);	/* fundamentally !__attribute_const__ */
 
 double	pow(double, double);
 double	sqrt(double);
 
 double	ceil(double);
-double	fabs(double) __pure2;
+double	fabs(double) __attribute_const__;
 double	floor(double);
 double	fmod(double, double);
 
@@ -143,9 +143,9 @@
 double	expm1(double);
 double	fma(double, double, double);
 double	hypot(double, double);
-int	ilogb(double) __pure2;
-int(isinf)(double) __pure2 __INTRODUCED_IN(21);
-int	(isnan)(double) __pure2;
+int	ilogb(double) __attribute_const__;
+int(isinf)(double) __attribute_const__ __INTRODUCED_IN(21);
+int	(isnan)(double) __attribute_const__;
 double	lgamma(double);
 long long llrint(double);
 long long llround(double);
@@ -155,7 +155,7 @@
 long	lrint(double);
 long	lround(double);
 
-double nan(const char*) __pure2 __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_MIPS(13)
+double nan(const char*) __attribute_const__ __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_MIPS(13)
     __INTRODUCED_IN_X86(9);
 
 double	nextafter(double, double);
@@ -163,10 +163,10 @@
 double	remquo(double, double, int*);
 double	rint(double);
 
-double	copysign(double, double) __pure2;
+double	copysign(double, double) __attribute_const__;
 double	fdim(double, double);
-double	fmax(double, double) __pure2;
-double	fmin(double, double) __pure2;
+double	fmax(double, double) __attribute_const__;
+double	fmin(double, double) __attribute_const__;
 double	nearbyint(double);
 double	round(double);
 double scalbln(double, long) __INTRODUCED_IN_X86(18) __VERSIONER_NO_GUARD;
@@ -189,20 +189,20 @@
 float	exp2f(float);
 float	expf(float);
 float	expm1f(float);
-float	frexpf(float, int *);	/* fundamentally !__pure2 */
-int	ilogbf(float) __pure2;
+float	frexpf(float, int *);	/* fundamentally !__attribute_const__ */
+int	ilogbf(float) __attribute_const__;
 float	ldexpf(float, int);
 float	log10f(float);
 float	log1pf(float);
 float log2f(float) __INTRODUCED_IN(18);
 float	logf(float);
-float	modff(float, float *);	/* fundamentally !__pure2 */
+float	modff(float, float *);	/* fundamentally !__attribute_const__ */
 
 float	powf(float, float);
 float	sqrtf(float);
 
 float	ceilf(float);
-float	fabsf(float) __pure2;
+float	fabsf(float) __attribute_const__;
 float	floorf(float);
 float	fmodf(float, float);
 float	roundf(float);
@@ -218,12 +218,12 @@
 float	atanhf(float);
 float	cbrtf(float);
 float	logbf(float);
-float	copysignf(float, float) __pure2;
+float	copysignf(float, float) __attribute_const__;
 long long llrintf(float);
 long long llroundf(float);
 long	lrintf(float);
 long	lroundf(float);
-float nanf(const char*) __pure2 __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_MIPS(13)
+float nanf(const char*) __attribute_const__ __INTRODUCED_IN_ARM(13) __INTRODUCED_IN_MIPS(13)
     __INTRODUCED_IN_X86(9);
 float	nearbyintf(float);
 float	nextafterf(float, float);
@@ -236,8 +236,8 @@
 
 float	fdimf(float, float);
 float	fmaf(float, float, float);
-float	fmaxf(float, float) __pure2;
-float	fminf(float, float) __pure2;
+float	fmaxf(float, float) __attribute_const__;
+float	fminf(float, float) __attribute_const__;
 
 long double acoshl(long double) __INTRODUCED_IN(21);
 long double acosl(long double) __INTRODUCED_IN(21);
@@ -248,7 +248,7 @@
 long double atanl(long double) __INTRODUCED_IN(21);
 long double cbrtl(long double) __INTRODUCED_IN(21);
 long double ceill(long double);
-long double copysignl(long double, long double) __pure2;
+long double copysignl(long double, long double) __attribute_const__;
 long double coshl(long double) __INTRODUCED_IN(21);
 long double cosl(long double) __INTRODUCED_IN(21);
 long double erfcl(long double) __INTRODUCED_IN(21);
@@ -256,17 +256,17 @@
 long double exp2l(long double) __INTRODUCED_IN(21);
 long double expl(long double) __INTRODUCED_IN(21);
 long double expm1l(long double) __INTRODUCED_IN(21);
-long double fabsl(long double) __pure2;
+long double fabsl(long double) __attribute_const__;
 long double fdiml(long double, long double);
 long double floorl(long double);
 long double fmal(long double, long double, long double) __INTRODUCED_IN(21) __VERSIONER_NO_GUARD;
-long double fmaxl(long double, long double) __pure2;
-long double fminl(long double, long double) __pure2;
+long double fmaxl(long double, long double) __attribute_const__;
+long double fminl(long double, long double) __attribute_const__;
 long double fmodl(long double, long double) __INTRODUCED_IN(21);
 long double frexpl(long double value, int*)
-    __INTRODUCED_IN(21) __VERSIONER_NO_GUARD; /* fundamentally !__pure2 */
+    __INTRODUCED_IN(21) __VERSIONER_NO_GUARD; /* fundamentally !__attribute_const__ */
 long double hypotl(long double, long double) __INTRODUCED_IN(21);
-int ilogbl(long double) __pure2;
+int ilogbl(long double) __attribute_const__;
 long double ldexpl(long double, int);
 long double lgammal(long double) __INTRODUCED_IN(21);
 long long llrintl(long double) __INTRODUCED_IN(21);
@@ -278,8 +278,8 @@
 long double logl(long double) __INTRODUCED_IN(21);
 long lrintl(long double) __INTRODUCED_IN(21);
 long lroundl(long double);
-long double modfl(long double, long double*) __INTRODUCED_IN(21); /* fundamentally !__pure2 */
-long double nanl(const char*) __pure2 __INTRODUCED_IN(13);
+long double modfl(long double, long double*) __INTRODUCED_IN(21); /* fundamentally !__attribute_const__ */
+long double nanl(const char*) __attribute_const__ __INTRODUCED_IN(13);
 long double nearbyintl(long double) __INTRODUCED_IN(21);
 long double nextafterl(long double, long double) __INTRODUCED_IN(21) __VERSIONER_NO_GUARD;
 double nexttoward(double, long double) __INTRODUCED_IN(18) __VERSIONER_NO_GUARD;
@@ -327,15 +327,15 @@
 double gamma(double);
 double scalb(double, double);
 double drem(double, double);
-int finite(double) __pure2;
-int isnanf(float) __pure2;
+int finite(double) __attribute_const__;
+int isnanf(float) __attribute_const__;
 double gamma_r(double, int*);
 double lgamma_r(double, int*);
 double significand(double);
 long double lgammal_r(long double, int*) __INTRODUCED_IN(23);
 long double significandl(long double) __INTRODUCED_IN(21);
 float dremf(float, float);
-int finitef(float) __pure2;
+int finitef(float) __attribute_const__;
 float gammaf(float);
 float j0f(float);
 float j1f(float);
diff --git a/libc/include/pthread.h b/libc/include/pthread.h
index 85b8cd9..20fd566 100644
--- a/libc/include/pthread.h
+++ b/libc/include/pthread.h
@@ -196,7 +196,7 @@
 int pthread_spin_trylock(pthread_spinlock_t* _Nonnull) __INTRODUCED_IN(24);
 int pthread_spin_unlock(pthread_spinlock_t* _Nonnull) __INTRODUCED_IN(24);
 
-pthread_t pthread_self(void) __pure2;
+pthread_t pthread_self(void) __attribute_const__;
 
 #if defined(__USE_GNU)
 int pthread_getname_np(pthread_t, char* _Nonnull, size_t) __INTRODUCED_IN_FUTURE;
diff --git a/libc/include/stdlib.h b/libc/include/stdlib.h
index 8d6651b..c84460b 100644
--- a/libc/include/stdlib.h
+++ b/libc/include/stdlib.h
@@ -79,9 +79,9 @@
 
 unsigned long strtoul_l(const char*, char**, int, locale_t) __INTRODUCED_IN_FUTURE;
 
-int atoi(const char*) __purefunc;
-long atol(const char*) __purefunc;
-long long atoll(const char*) __purefunc;
+int atoi(const char*) __attribute_pure__;
+long atol(const char*) __attribute_pure__;
+long long atoll(const char*) __attribute_pure__;
 
 char* realpath(const char* path, char* resolved);
 int system(const char* string);
@@ -125,21 +125,21 @@
     int  rem;
 } div_t;
 
-div_t div(int, int) __pure2;
+div_t div(int, int) __attribute_const__;
 
 typedef struct {
     long int  quot;
     long int  rem;
 } ldiv_t;
 
-ldiv_t ldiv(long, long) __pure2;
+ldiv_t ldiv(long, long) __attribute_const__;
 
 typedef struct {
     long long int  quot;
     long long int  rem;
 } lldiv_t;
 
-lldiv_t lldiv(long long, long long) __pure2;
+lldiv_t lldiv(long long, long long) __attribute_const__;
 
 /* BSD compatibility. */
 const char* getprogname(void) __INTRODUCED_IN(21);
@@ -186,10 +186,10 @@
 
 #if __ANDROID_API__ >= 21
 float strtof(const char*, char**) __INTRODUCED_IN(21);
-double atof(const char*) __INTRODUCED_IN(21);
-int abs(int) __pure2 __INTRODUCED_IN(21);
-long labs(long) __pure2 __INTRODUCED_IN(21);
-long long llabs(long long) __pure2 __INTRODUCED_IN(21);
+double atof(const char*) __attribute_pure__ __INTRODUCED_IN(21);
+int abs(int) __attribute_const__ __INTRODUCED_IN(21);
+long labs(long) __attribute_const__ __INTRODUCED_IN(21);
+long long llabs(long long) __attribute_const__ __INTRODUCED_IN(21);
 int rand(void) __INTRODUCED_IN(21);
 void srand(unsigned int) __INTRODUCED_IN(21);
 long random(void) __INTRODUCED_IN(21);
diff --git a/libc/include/string.h b/libc/include/string.h
index 8ad227b..0114e6a 100644
--- a/libc/include/string.h
+++ b/libc/include/string.h
@@ -47,42 +47,42 @@
 #endif
 
 void* memccpy(void* _Nonnull __restrict, const void* _Nonnull __restrict, int, size_t);
-void* memchr(const void* _Nonnull, int, size_t) __purefunc;
-void* memrchr(const void* _Nonnull, int, size_t) __purefunc;
-int memcmp(const void* _Nonnull, const void* _Nonnull, size_t) __purefunc;
+void* memchr(const void* _Nonnull, int, size_t) __attribute_pure__;
+void* memrchr(const void* _Nonnull, int, size_t) __attribute_pure__;
+int memcmp(const void* _Nonnull, const void* _Nonnull, size_t) __attribute_pure__;
 void* memcpy(void* _Nonnull __restrict, const void* _Nonnull __restrict, size_t);
 #if defined(__USE_GNU)
 void* mempcpy(void* _Nonnull __restrict, const void* _Nonnull __restrict, size_t) __INTRODUCED_IN(23);
 #endif
 void* memmove(void* _Nonnull, const void* _Nonnull, size_t);
 void* memset(void* _Nonnull, int, size_t);
-void* memmem(const void* _Nonnull, size_t, const void* _Nonnull, size_t) __purefunc;
+void* memmem(const void* _Nonnull, size_t, const void* _Nonnull, size_t) __attribute_pure__;
 
-char* strchr(const char* _Nonnull, int) __purefunc;
+char* strchr(const char* _Nonnull, int) __attribute_pure__;
 char* __strchr_chk(const char* _Nonnull, int, size_t) __INTRODUCED_IN(18);
 #if defined(__USE_GNU)
 #if defined(__cplusplus)
-extern "C++" char* strchrnul(char* _Nonnull, int) __RENAME(strchrnul) __purefunc;
-extern "C++" const char* strchrnul(const char* _Nonnull, int) __RENAME(strchrnul) __purefunc;
+extern "C++" char* strchrnul(char* _Nonnull, int) __RENAME(strchrnul) __attribute_pure__;
+extern "C++" const char* strchrnul(const char* _Nonnull, int) __RENAME(strchrnul) __attribute_pure__;
 #else
-char* strchrnul(const char* _Nonnull, int) __purefunc __INTRODUCED_IN(24);
+char* strchrnul(const char* _Nonnull, int) __attribute_pure__ __INTRODUCED_IN(24);
 #endif
 #endif
 
-char* strrchr(const char* _Nonnull, int) __purefunc;
+char* strrchr(const char* _Nonnull, int) __attribute_pure__;
 char* __strrchr_chk(const char* _Nonnull, int, size_t) __INTRODUCED_IN(18);
 
-size_t strlen(const char* _Nonnull) __purefunc;
+size_t strlen(const char* _Nonnull) __attribute_pure__;
 size_t __strlen_chk(const char* _Nonnull, size_t) __INTRODUCED_IN(17);
-int strcmp(const char* _Nonnull, const char* _Nonnull) __purefunc;
+int strcmp(const char* _Nonnull, const char* _Nonnull) __attribute_pure__;
 char* stpcpy(char* _Nonnull __restrict, const char* _Nonnull__restrict) __INTRODUCED_IN(21);
 char* strcpy(char* _Nonnull __restrict, const char* _Nonnull __restrict);
 char* strcat(char* _Nonnull __restrict, const char* _Nonnull __restrict);
 
 char* strdup(const char* _Nonnull);
 
-char* strstr(const char* _Nonnull, const char* _Nonnull) __purefunc;
-char* strcasestr(const char* _Nonnull, const char* _Nonnull) __purefunc;
+char* strstr(const char* _Nonnull, const char* _Nonnull) __attribute_pure__;
+char* strcasestr(const char* _Nonnull, const char* _Nonnull) __attribute_pure__;
 char* strtok(char* __restrict, const char* _Nonnull __restrict);
 char* strtok_r(char* __restrict, const char* _Nonnull __restrict, char** _Nonnull __restrict);
 
@@ -94,28 +94,28 @@
 int strerror_r(int, char*, size_t);
 #endif
 
-size_t strnlen(const char* _Nonnull, size_t) __purefunc;
+size_t strnlen(const char* _Nonnull, size_t) __attribute_pure__;
 char* strncat(char* _Nonnull __restrict, const char* _Nonnull __restrict, size_t);
 char* strndup(const char* _Nonnull, size_t);
-int strncmp(const char* _Nonnull, const char* _Nonnull, size_t) __purefunc;
+int strncmp(const char* _Nonnull, const char* _Nonnull, size_t) __attribute_pure__;
 char* stpncpy(char* _Nonnull __restrict, const char* _Nonnull __restrict, size_t) __INTRODUCED_IN(21);
 char* strncpy(char* _Nonnull __restrict, const char* _Nonnull __restrict, size_t);
 
 size_t strlcat(char* _Nonnull __restrict, const char* _Nonnull __restrict, size_t);
 size_t strlcpy(char* _Nonnull __restrict, const char* _Nonnull __restrict, size_t);
 
-size_t strcspn(const char* _Nonnull, const char* _Nonnull) __purefunc;
-char* strpbrk(const char* _Nonnull, const char* _Nonnull) __purefunc;
+size_t strcspn(const char* _Nonnull, const char* _Nonnull) __attribute_pure__;
+char* strpbrk(const char* _Nonnull, const char* _Nonnull) __attribute_pure__;
 char* strsep(char** _Nonnull __restrict, const char* _Nonnull __restrict);
 size_t strspn(const char* _Nonnull, const char* _Nonnull);
 
 char* strsignal(int);
 
-int strcoll(const char* _Nonnull, const char* _Nonnull) __purefunc;
+int strcoll(const char* _Nonnull, const char* _Nonnull) __attribute_pure__;
 size_t strxfrm(char* __restrict, const char* _Nonnull __restrict, size_t);
 
 #if __ANDROID_API__ >= 21
-int strcoll_l(const char* _Nonnull, const char* _Nonnull, locale_t) __purefunc __INTRODUCED_IN(21);
+int strcoll_l(const char* _Nonnull, const char* _Nonnull, locale_t) __attribute_pure__ __INTRODUCED_IN(21);
 size_t strxfrm_l(char* __restrict, const char* _Nonnull __restrict, size_t, locale_t) __INTRODUCED_IN(21);
 #else
 // Implemented as static inlines before 21.
diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h
index 3b058e8..63e782e 100644
--- a/libc/include/sys/cdefs.h
+++ b/libc/include/sys/cdefs.h
@@ -102,13 +102,12 @@
 #endif	/* !(__STDC__ || __cplusplus) */
 
 #define __always_inline __attribute__((__always_inline__))
+#define __attribute_const__ __attribute__((__const__))
+#define __attribute_pure__ __attribute__((__pure__))
 #define __dead __attribute__((__noreturn__))
 #define __noreturn __attribute__((__noreturn__))
-#define __mallocfunc  __attribute__((malloc))
+#define __mallocfunc  __attribute__((__malloc__))
 #define __packed __attribute__((__packed__))
-#define __pure __attribute__((__const__))
-#define __pure2 __attribute__((__const__)) /* Android-added: used by FreeBSD libm */
-#define __purefunc    __attribute__((pure))
 #define __unused __attribute__((__unused__))
 #define __used __attribute__((__used__))
 
diff --git a/libc/include/sys/endian.h b/libc/include/sys/endian.h
index b9e4758..de172fe 100644
--- a/libc/include/sys/endian.h
+++ b/libc/include/sys/endian.h
@@ -49,10 +49,10 @@
 
 /* glibc compatibility. */
 __BEGIN_DECLS
-uint32_t htonl(uint32_t) __pure2 __INTRODUCED_IN(21);
-uint16_t htons(uint16_t) __pure2 __INTRODUCED_IN(21);
-uint32_t ntohl(uint32_t) __pure2 __INTRODUCED_IN(21);
-uint16_t ntohs(uint16_t) __pure2 __INTRODUCED_IN(21);
+uint32_t htonl(uint32_t) __attribute_const__ __INTRODUCED_IN(21);
+uint16_t htons(uint16_t) __attribute_const__ __INTRODUCED_IN(21);
+uint32_t ntohl(uint32_t) __attribute_const__ __INTRODUCED_IN(21);
+uint16_t ntohs(uint16_t) __attribute_const__ __INTRODUCED_IN(21);
 __END_DECLS
 
 #define htonl(x) __swap32(x)
diff --git a/libc/include/unistd.h b/libc/include/unistd.h
index 4e7d8ba..130ede6 100644
--- a/libc/include/unistd.h
+++ b/libc/include/unistd.h
@@ -81,7 +81,7 @@
 pid_t  fork(void);
 pid_t  vfork(void);
 pid_t  getpid(void);
-pid_t  gettid(void) __pure2;
+pid_t  gettid(void) __attribute_const__;
 pid_t  getpgid(pid_t __pid);
 int    setpgid(pid_t __pid, pid_t __pgid);
 pid_t  getppid(void);
diff --git a/libc/include/wchar.h b/libc/include/wchar.h
index 0f32355..c3ad91c 100644
--- a/libc/include/wchar.h
+++ b/libc/include/wchar.h
@@ -137,7 +137,7 @@
 unsigned long long wcstoull_l(const wchar_t*, wchar_t**, int, locale_t) __INTRODUCED_IN(21);
 long double wcstold_l(const wchar_t*, wchar_t**, locale_t) __INTRODUCED_IN(21);
 
-int wcscoll_l(const wchar_t* _Nonnull, const wchar_t* _Nonnull, locale_t) __purefunc
+int wcscoll_l(const wchar_t* _Nonnull, const wchar_t* _Nonnull, locale_t) __attribute_pure__
     __INTRODUCED_IN(21);
 size_t wcsxfrm_l(wchar_t*, const wchar_t* _Nonnull, size_t, locale_t) __INTRODUCED_IN(21);
 #else