summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2013-06-07 22:24:35 +0000
committerJoseph Myers <joseph@codesourcery.com>2013-06-07 22:24:35 +0000
commit2e09a79ada1f6d92809a037d41895e3d9302ad59 (patch)
tree999c9d18279a7de289937116273ae4016356aa3a
parent8e254d8e0d0820716e0ccf5f2b89c4fd1325f051 (diff)
downloadglibc-2e09a79ada1f6d92809a037d41895e3d9302ad59.tar.gz
glibc-2e09a79ada1f6d92809a037d41895e3d9302ad59.tar.xz
glibc-2e09a79ada1f6d92809a037d41895e3d9302ad59.zip
Avoid use of "register" as optimization hint.
-rw-r--r--ChangeLog145
-rw-r--r--bits/byteswap.h2
-rw-r--r--crypt/crypt.c4
-rw-r--r--debug/stpcpy_chk.c4
-rw-r--r--debug/wcscat_chk.c4
-rw-r--r--gmon/gmon.c2
-rw-r--r--gmon/mcount.c8
-rw-r--r--hurd/hurdmalloc.c40
-rw-r--r--include/rpc/auth_des.h8
-rw-r--r--inet/inet_lnaof.c2
-rw-r--r--inet/inet_net.c6
-rw-r--r--inet/inet_netof.c2
-rw-r--r--inet/rcmd.c4
-rw-r--r--io/fts.c54
-rw-r--r--libio/fileops.c14
-rw-r--r--libio/iofopncook.c4
-rw-r--r--libio/oldfileops.c8
-rw-r--r--libio/wfileops.c8
-rw-r--r--mach/msgserver.c4
-rw-r--r--malloc/obstack.c26
-rw-r--r--misc/getttyent.c14
-rw-r--r--misc/getusershell.c4
-rw-r--r--misc/syslog.c2
-rw-r--r--misc/ttyslot.c6
-rw-r--r--nis/nis_hash.c8
-rw-r--r--ports/ChangeLog.ia648
-rw-r--r--ports/sysdeps/ia64/bits/byteswap-16.h2
-rw-r--r--ports/sysdeps/ia64/bits/byteswap.h4
-rw-r--r--posix/fnmatch_loop.c6
-rw-r--r--posix/getconf.c4
-rw-r--r--posix/getopt.c4
-rw-r--r--posix/glob.c6
-rw-r--r--resolv/arpa/nameser.h12
-rw-r--r--resolv/gethnamaddr.c22
-rw-r--r--resolv/ns_print.c2
-rw-r--r--resolv/nss_dns/dns-host.c4
-rw-r--r--resolv/res_init.c8
-rw-r--r--resolv/res_mkquery.c6
-rw-r--r--stdio-common/printf_fp.c4
-rw-r--r--stdio-common/printf_fphex.c4
-rw-r--r--stdio-common/printf_size.c4
-rw-r--r--stdio-common/test_rdwr.c2
-rw-r--r--stdio-common/tfformat.c2
-rw-r--r--stdio-common/vfprintf.c8
-rw-r--r--stdio-common/vfscanf.c14
-rw-r--r--stdio-common/xbug.c12
-rw-r--r--stdlib/qsort.c8
-rw-r--r--stdlib/setenv.c4
-rw-r--r--stdlib/strtod_l.c13
-rw-r--r--stdlib/strtol_l.c10
-rw-r--r--stdlib/tst-strtod.c4
-rw-r--r--stdlib/tst-strtol.c6
-rw-r--r--stdlib/tst-strtoll.c6
-rw-r--r--string/bits/string2.h26
-rw-r--r--string/memccpy.c8
-rw-r--r--string/stpcpy.c4
-rw-r--r--string/strcmp.c4
-rw-r--r--string/strrchr.c2
-rw-r--r--sysdeps/generic/sigset-cvt-mask.h4
-rw-r--r--sysdeps/mach/hurd/getcwd.c2
-rw-r--r--sysdeps/mach/i386/sysdep.h2
-rw-r--r--sysdeps/powerpc/powerpc32/power6/wcschr.c6
-rw-r--r--sysdeps/powerpc/powerpc32/power6/wcsrchr.c6
-rw-r--r--sysdeps/x86/bits/byteswap-16.h4
-rw-r--r--sysdeps/x86/bits/byteswap.h8
-rw-r--r--time/test_time.c2
-rw-r--r--time/tzfile.c6
-rw-r--r--time/tzset.c6
-rw-r--r--wcsmbs/wcscat.c4
-rw-r--r--wcsmbs/wcschr.c4
-rw-r--r--wcsmbs/wcschrnul.c4
-rw-r--r--wcsmbs/wcscspn.c2
-rw-r--r--wcsmbs/wcspbrk.c4
-rw-r--r--wcsmbs/wcsrchr.c4
-rw-r--r--wcsmbs/wcsspn.c6
-rw-r--r--wcsmbs/wcsstr.c6
-rw-r--r--wcsmbs/wmemchr.c6
-rw-r--r--wcsmbs/wmemcmp.c4
-rw-r--r--wcsmbs/wmemset.c2
79 files changed, 430 insertions, 278 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f6ec84f44..64374b032b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,148 @@
+2013-06-07  Joseph Myers  <joseph@codesourcery.com>
+
+	* bits/byteswap.h [__GNUC__ && !__GNUC_PREREQ (4, 3)]
+	(__bswap_32): Do not use "register".
+	* crypt/crypt.c (_ufc_doit_r): Likewise.
+	* debug/stpcpy_chk.c (__stpcpy_chk): Likewise.
+	* debug/wcscat_chk.c (__wcscat_chk): Likewise.
+	* gmon/gmon.c (__monstartup): Likewise.
+	* gmon/mcount.c (_MCOUNT_DECL(frompc, selfpc)): Likewise.
+	* hurd/hurdmalloc.c (more_memory): Likewise.
+	(malloc): Likewise.
+	(free): Likewise.
+	(realloc): Likewise.
+	(malloc_fork_prepare): Likewise.
+	(malloc_fork_parent): Likewise.
+	(malloc_fork_child): Likewise.
+	* include/rpc/auth_des.h (xdr_authdes_verf): Likewise.
+	(_svcauth_des): Likewise.
+	* inet/inet_lnaof.c (inet_lnaof): Likewise.
+	* inet/inet_net.c (inet_network): Likewise.
+	* inet/inet_netof.c (inet_netof): Likewise.
+	* inet/rcmd.c (__validuser2_sa): Likewise.
+	* io/fts.c (fts_open): Likewise.
+	(fts_load): Likewise.
+	(fts_close): Likewise.
+	(fts_read): Likewise.
+	(fts_children): Likewise.
+	(fts_build): Likewise.
+	(fts_stat): Likewise.
+	(fts_sort): Likewise.
+	(fts_alloc): Likewise.
+	(fts_lfree): Likewise.
+	* libio/fileops.c (_IO_new_file_xsputn): Likewise.
+	(_IO_file_xsgetn): Likewise.
+	(_IO_file_xsgetn_mmap): Likewise.
+	* libio/iofopncook.c (_IO_cookie_read): Likewise.
+	(_IO_cookie_write): Likewise.
+	* libio/oldfileops.c (_IO_old_file_xsputn): Likewise.
+	* libio/wfileops.c (_IO_wfile_xsputn): Likewise.
+	* mach/msgserver.c (__mach_msg_server_timeout): Likewise.
+	* malloc/obstack.c (_obstack_begin): Likewise.
+	(_obstack_begin_1): Likewise.
+	(_obstack_newchunk): Likewise.
+	(_obstack_allocated_p): Likewise.
+	(obstack_free): Likewise.
+	(_obstack_memory_used): Likewise.
+	* misc/getttyent.c (getttynam): Likewise.
+	(getttyent): Likewise.
+	(skip): Likewise.
+	(value): Likewise.
+	* misc/getusershell.c (initshells): Likewise.
+	* misc/syslog.c (__vsyslog_chk): Likewise.
+	* misc/ttyslot.c (ttyslot): Likewise.
+	* nis/nis_hash.c (__nis_hash): Likewise.
+	* posix/fnmatch_loop.c (FCT): Likewise.
+	* posix/getconf.c (print_all): Likewise.
+	(main): Likewise.
+	* posix/getopt.c (exchange): Likewise.
+	* posix/glob.c (globfree): Likewise.
+	(prefix_array): Likewise.
+	(__glob_pattern_type): Likewise.
+	* resolv/arpa/nameser.h (NS_GET16): Likewise.
+	(NS_GET32): Likewise.
+	(NS_PUT16): Likewise.
+	(NS_PUT32): Likewise.
+	* resolv/gethnamaddr.c (getanswer): Likewise.
+	(gethostbyname2): Likewise.
+	(gethostbyaddr): Likewise.
+	(_gethtent): Likewise.
+	(_gethtbyname2): Likewise.
+	(_gethtbyaddr): Likewise.
+	* resolv/ns_print.c (dst_s_get_int16): Likewise.
+	* resolv/nss_dns/dns-host.c (getanswer_r): Likewise.
+	* resolv/res_init.c (__res_vinit): Likewise.
+	(net_mask): Likewise.
+	* resolv/res_mkquery.c (outchar): Likewise.
+	(PRINT): Likewise.
+	* stdio-common/printf_fp.c (outchar): Likewise.
+	(PRINT): Likewise.
+	* stdio-common/printf_fphex.c (outchar): Likewise.
+	(PRINT): Likewise.
+	* stdio-common/printf_size.c (outchar): Likewise.
+	(PRINT): Likewise.
+	* stdio-common/test_rdwr.c (main): Likewise.
+	* stdio-common/tfformat.c (matches): Likewise.
+	* stdio-common/vfprintf.c (outchar): Likewise.
+	(printf_unknown): Likewise.
+	(buffered_vfprintf): Likewise.
+	* stdio-common/vfscanf.c (_IO_vfscanf_internal): Likewise.
+	* stdio-common/xbug.c (AppendToBuffer): Likewise.
+	(ReadFile): Likewise.
+	* stdlib/qsort.c (SWAP): Likewise.
+	(_quicksort): Likewise.
+	* stdlib/setenv.c (__add_to_environ): Likewise.
+	* stdlib/strtod_l.c (____STRTOF_INTERNAL): Likewise.
+	* stdlib/strtol_l.c (__strtol_l): Likewise.
+	* stdlib/tst-strtod.c (main): Likewise.
+	* stdlib/tst-strtol.c (main): Likewise.
+	* stdlib/tst-strtoll.c (main): Likewise.
+	* string/bits/string2.h (__strcmp_cc): Likewise.
+	(__strcmp_cg): Likewise.
+	(__strcspn_c1): Likewise.
+	(__strcspn_c2): Likewise.
+	(__strcspn_c3): Likewise.
+	(__strspn_c1): Likewise.
+	(__strspn_c2): Likewise.
+	(__strspn_c3): Likewise.
+	(__strsep_1c): Likewise.
+	(__strsep_2c): Likewise.
+	(__strsep_3c): Likewise.
+	* string/memccpy.c (__memccpy): Likewise.
+	* string/stpcpy.c (__stpcpy): Likewise.
+	* string/strcmp.c (strcmp): Likewise.
+	* string/strrchr.c (strrchr): Likewise.
+	* sysdeps/generic/sigset-cvt-mask.h (sigset_get_old_mask):
+	Likewise.
+	* sysdeps/mach/hurd/getcwd.c
+	(_hurd_canonicalize_directory_name_internal): Likewise.
+	* sysdeps/mach/i386/sysdep.h (SNARF_ARGS): Likewise.
+	* sysdeps/powerpc/powerpc32/power6/wcschr.c (wcschr): Likewise.
+	* sysdeps/powerpc/powerpc32/power6/wcsrchr.c (wcsrchr): Likewise.
+	* sysdeps/x86/bits/byteswap-16.h [__GNUC__] (__bswap_16):
+	Likewise, in both definitions.
+	* sysdeps/x86/bits/byteswap.h (__bswap_32): Likewise, in multiple
+	definitions.
+	[__GNUC_PREREQ (2, 0) && !__GNUC_PREREQ (4, 3) && __WORDSIZE ==
+	64] (__bswap_64): Likewise.
+	* time/test_time.c (main): Likewise.
+	* time/tzfile.c (__tzfile_read): Likewise.
+	(__tzfile_compute): Likewise.
+	* time/tzset.c (__tzset_parse_tz): Likewise.
+	(tzset_internal): Likewise.
+	(compute_change): Likewise.
+	* wcsmbs/wcscat.c (__wcscat): Likewise.
+	* wcsmbs/wcschr.c (wcschr): Likewise.
+	* wcsmbs/wcschrnul.c (__wcschrnul): Likewise.
+	* wcsmbs/wcscspn.c (wcscspn): Likewise.
+	* wcsmbs/wcspbrk.c (wcspbrk): Likewise.
+	* wcsmbs/wcsrchr.c (wcsrchr): Likewise.
+	* wcsmbs/wcsspn.c (wcsspn): Likewise.
+	* wcsmbs/wcsstr.c (wcsstr): Likewise.
+	* wcsmbs/wmemchr.c (wmemchr): Likewise.
+	* wcsmbs/wmemcmp.c (WMEMCMP): Likewise.
+	* wcsmbs/wmemset.c (wmemset): Likewise.
+
 2013-06-06  Joseph Myers  <joseph@codesourcery.com>
 
 	* scripts/config.guess: Update to version 2013-05-16.
diff --git a/bits/byteswap.h b/bits/byteswap.h
index 57d34b461a..5a35084279 100644
--- a/bits/byteswap.h
+++ b/bits/byteswap.h
@@ -48,7 +48,7 @@ __bswap_32 (unsigned int __bsx)
 # else
 #  define __bswap_32(x) \
   (__extension__							      \
-   ({ register unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
+   ({ unsigned int __bsx = (x); __bswap_constant_32 (__bsx); }))
 # endif
 #else
 static __inline unsigned int
diff --git a/crypt/crypt.c b/crypt/crypt.c
index b90a46dd65..e429950e25 100644
--- a/crypt/crypt.c
+++ b/crypt/crypt.c
@@ -88,8 +88,8 @@ _ufc_doit_r(itr, __data, res)
 {
   int i;
   long64 l, r, s, *k;
-  register long64 *sb01 = (long64*)__data->sb0;
-  register long64 *sb23 = (long64*)__data->sb2;
+  long64 *sb01 = (long64*)__data->sb0;
+  long64 *sb23 = (long64*)__data->sb2;
 
   l = (((long64)res[0]) << 32) | ((long64)res[1]);
   r = (((long64)res[2]) << 32) | ((long64)res[3]);
diff --git a/debug/stpcpy_chk.c b/debug/stpcpy_chk.c
index cdf052ebbb..b16b83d16e 100644
--- a/debug/stpcpy_chk.c
+++ b/debug/stpcpy_chk.c
@@ -29,8 +29,8 @@ __stpcpy_chk (dest, src, destlen)
      const char *src;
      size_t destlen;
 {
-  register char *d = dest;
-  register const char *s = src;
+  char *d = dest;
+  const char *s = src;
 
   do
     {
diff --git a/debug/wcscat_chk.c b/debug/wcscat_chk.c
index 0d49f70f05..2bd7e76350 100644
--- a/debug/wcscat_chk.c
+++ b/debug/wcscat_chk.c
@@ -23,8 +23,8 @@
 wchar_t *
 __wcscat_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
 {
-  register wchar_t *s1 = dest;
-  register const wchar_t *s2 = src;
+  wchar_t *s1 = dest;
+  const wchar_t *s2 = src;
   wchar_t c;
 
   /* Find the end of the string.  */
diff --git a/gmon/gmon.c b/gmon/gmon.c
index 0d2ed0594e..9774d57ccc 100644
--- a/gmon/gmon.c
+++ b/gmon/gmon.c
@@ -102,7 +102,7 @@ __monstartup (lowpc, highpc)
      u_long lowpc;
      u_long highpc;
 {
-  register int o;
+  int o;
   char *cp;
   struct gmonparam *p = &_gmonparam;
 
diff --git a/gmon/mcount.c b/gmon/mcount.c
index 5a4a2499d4..0c2acd2890 100644
--- a/gmon/mcount.c
+++ b/gmon/mcount.c
@@ -58,10 +58,10 @@ static char sccsid[] = "@(#)mcount.c	8.1 (Berkeley) 6/4/93";
  */
 _MCOUNT_DECL(frompc, selfpc)	/* _mcount; may be static, inline, etc */
 {
-	register ARCINDEX *frompcindex;
-	register struct tostruct *top, *prevtop;
-	register struct gmonparam *p;
-	register ARCINDEX toindex;
+	ARCINDEX *frompcindex;
+	struct tostruct *top, *prevtop;
+	struct gmonparam *p;
+	ARCINDEX toindex;
 	int i;
 
 	p = &_gmonparam;
diff --git a/hurd/hurdmalloc.c b/hurd/hurdmalloc.c
index 8724261376..0b48c08b04 100644
--- a/hurd/hurdmalloc.c
+++ b/hurd/hurdmalloc.c
@@ -171,10 +171,10 @@ malloc_init (void)
 static void
 more_memory(int size, free_list_t fl)
 {
-	register int amount;
-	register int n;
+	int amount;
+	int n;
 	vm_address_t where;
-	register header_t h;
+	header_t h;
 	kern_return_t r;
 
 	if (size <= vm_page_size) {
@@ -203,11 +203,11 @@ more_memory(int size, free_list_t fl)
 /* Declaration changed to standard one for GNU.  */
 void *
 malloc(size)
-	register size_t size;
+	size_t size;
 {
-	register int i, n;
-	register free_list_t fl;
-	register header_t h;
+	int i, n;
+	free_list_t fl;
+	header_t h;
 
 	if ((int) size < 0)		/* sanity check */
 		return 0;
@@ -272,9 +272,9 @@ void
 free(base)
 	void *base;
 {
-	register header_t h;
-	register free_list_t fl;
-	register int i;
+	header_t h;
+	free_list_t fl;
+	int i;
 
 	if (base == 0)
 		return;
@@ -322,9 +322,9 @@ realloc(old_base, new_size)
         void *old_base;
         size_t new_size;
 {
-	register header_t h;
-	register free_list_t fl;
-	register int i;
+	header_t h;
+	free_list_t fl;
+	int i;
 	unsigned int old_size;
 	char *new_base;
 
@@ -382,10 +382,10 @@ realloc(old_base, new_size)
 void
 print_malloc_free_list()
 {
-	register int i, size;
-	register free_list_t fl;
-	register int n;
-	register header_t h;
+	int i, size;
+	free_list_t fl;
+	int n;
+	header_t h;
 	int total_used = 0;
 	int total_free = 0;
 
@@ -416,7 +416,7 @@ malloc_fork_prepare(void)
  * malloc critical section.
  */
 {
-    register int i;
+    int i;
 
     for (i = 0; i < NBUCKETS; i++) {
 	spin_lock(&malloc_free_list[i].lock);
@@ -429,7 +429,7 @@ malloc_fork_parent(void)
  * Called in the parent process after a fork() to resume normal operation.
  */
 {
-    register int i;
+    int i;
 
     for (i = NBUCKETS-1; i >= 0; i--) {
 	spin_unlock(&malloc_free_list[i].lock);
@@ -442,7 +442,7 @@ malloc_fork_child(void)
  * Called in the child process after a fork() to resume normal operation.
  */
 {
-    register int i;
+    int i;
 
     for (i = NBUCKETS-1; i >= 0; i--) {
 	spin_unlock(&malloc_free_list[i].lock);
diff --git a/include/rpc/auth_des.h b/include/rpc/auth_des.h
index c14f069668..0e9db1a226 100644
--- a/include/rpc/auth_des.h
+++ b/include/rpc/auth_des.h
@@ -7,12 +7,12 @@ libc_hidden_proto (getsecretkey)
 libc_hidden_proto (rtime)
 
 extern bool_t xdr_authdes_cred (XDR *xdrs, struct authdes_cred *cred);
-extern bool_t xdr_authdes_verf (register XDR *xdrs,
-				register struct authdes_verf *verf);
+extern bool_t xdr_authdes_verf (XDR *xdrs,
+				struct authdes_verf *verf);
 struct svc_req;
 struct rpc_msg;
-extern enum auth_stat _svcauth_des (register struct svc_req *rqst,
-				    register struct rpc_msg *msg);
+extern enum auth_stat _svcauth_des (struct svc_req *rqst,
+				    struct rpc_msg *msg);
 
 
 #define DECLARE_NSS_PROTOTYPES(service)					\
diff --git a/inet/inet_lnaof.c b/inet/inet_lnaof.c
index 0e115a4420..c993c8b847 100644
--- a/inet/inet_lnaof.c
+++ b/inet/inet_lnaof.c
@@ -44,7 +44,7 @@ in_addr_t
 inet_lnaof(in)
 	struct in_addr in;
 {
-	register u_int32_t i = ntohl(in.s_addr);
+	u_int32_t i = ntohl(in.s_addr);
 
 	if (IN_CLASSA(i))
 		return ((i)&IN_CLASSA_HOST);
diff --git a/inet/inet_net.c b/inet/inet_net.c
index d58f1ae8e3..68e232f3d3 100644
--- a/inet/inet_net.c
+++ b/inet/inet_net.c
@@ -43,10 +43,10 @@ static char sccsid[] = "@(#)inet_network.c	8.1 (Berkeley) 6/4/93";
  */
 u_int32_t
 inet_network(cp)
-	register const char *cp;
+	const char *cp;
 {
-	register u_int32_t val, base, n, i;
-	register char c;
+	u_int32_t val, base, n, i;
+	char c;
 	u_int32_t parts[4], *pp = parts;
 	int digit;
 
diff --git a/inet/inet_netof.c b/inet/inet_netof.c
index e49177a0f4..9b0aed992e 100644
--- a/inet/inet_netof.c
+++ b/inet/inet_netof.c
@@ -43,7 +43,7 @@ in_addr_t
 inet_netof(in)
 	struct in_addr in;
 {
-	register u_int32_t i = ntohl(in.s_addr);
+	u_int32_t i = ntohl(in.s_addr);
 
 	if (IN_CLASSA(i))
 		return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
diff --git a/inet/rcmd.c b/inet/rcmd.c
index 5e18b12691..acacaa0d8a 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -769,8 +769,8 @@ __validuser2_sa(hostf, ra, ralen, luser, ruser, rhost)
 	size_t ralen;
 	const char *luser, *ruser, *rhost;
 {
-    register const char *user;
-    register char *p;
+    const char *user;
+    char *p;
     int hcheck, ucheck;
     char *buf = NULL;
     size_t bufsize = 0;
diff --git a/io/fts.c b/io/fts.c
index 5ba202b8aa..c9c054d6d3 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -87,12 +87,12 @@ static int      fts_safe_changedir (FTS *, FTSENT *, int, const char *)
 FTS *
 fts_open(argv, options, compar)
 	char * const *argv;
-	register int options;
+	int options;
 	int (*compar) (const FTSENT **, const FTSENT **);
 {
-	register FTS *sp;
-	register FTSENT *p, *root;
-	register int nitems;
+	FTS *sp;
+	FTSENT *p, *root;
+	int nitems;
 	FTSENT *parent = NULL;
 	FTSENT *tmp;
 
@@ -204,10 +204,10 @@ static void
 internal_function
 fts_load(sp, p)
 	FTS *sp;
-	register FTSENT *p;
+	FTSENT *p;
 {
-	register int len;
-	register char *cp;
+	int len;
+	char *cp;
 
 	/*
 	 * Load the stream structure for the next traversal.  Since we don't
@@ -231,7 +231,7 @@ int
 fts_close(sp)
 	FTS *sp;
 {
-	register FTSENT *freep, *p;
+	FTSENT *freep, *p;
 	int saved_errno;
 
 	/*
@@ -283,11 +283,11 @@ fts_close(sp)
 
 FTSENT *
 fts_read(sp)
-	register FTS *sp;
+	FTS *sp;
 {
-	register FTSENT *p, *tmp;
-	register int instr;
-	register char *t;
+	FTSENT *p, *tmp;
+	int instr;
+	char *t;
 	int saved_errno;
 
 	/* If finished or unrecoverable error, return NULL. */
@@ -495,10 +495,10 @@ fts_set(sp, p, instr)
 
 FTSENT *
 fts_children(sp, instr)
-	register FTS *sp;
+	FTS *sp;
 	int instr;
 {
-	register FTSENT *p;
+	FTSENT *p;
 	int fd;
 
 	if (instr != 0 && instr != FTS_NAMEONLY) {
@@ -578,12 +578,12 @@ fts_children(sp, instr)
 static FTSENT *
 internal_function
 fts_build(sp, type)
-	register FTS *sp;
+	FTS *sp;
 	int type;
 {
-	register struct dirent *dp;
-	register FTSENT *p, *head;
-	register int nitems;
+	struct dirent *dp;
+	FTSENT *p, *head;
+	int nitems;
 	FTSENT *cur, *tail;
 	DIR *dirp;
 	void *oldaddr;
@@ -848,12 +848,12 @@ static u_short
 internal_function
 fts_stat(sp, p, follow)
 	FTS *sp;
-	register FTSENT *p;
+	FTSENT *p;
 	int follow;
 {
-	register FTSENT *t;
-	register dev_t dev;
-	register ino_t ino;
+	FTSENT *t;
+	dev_t dev;
+	ino_t ino;
 	struct stat *sbp, sb;
 	int saved_errno;
 
@@ -933,9 +933,9 @@ internal_function
 fts_sort(sp, head, nitems)
 	FTS *sp;
 	FTSENT *head;
-	register int nitems;
+	int nitems;
 {
-	register FTSENT **ap, *p;
+	FTSENT **ap, *p;
 
 	/*
 	 * Construct an array of pointers to the structures and call qsort(3).
@@ -973,7 +973,7 @@ fts_alloc(sp, name, namelen)
 	const char *name;
 	size_t namelen;
 {
-	register FTSENT *p;
+	FTSENT *p;
 	size_t len;
 
 	/*
@@ -1009,9 +1009,9 @@ fts_alloc(sp, name, namelen)
 static void
 internal_function
 fts_lfree(head)
-	register FTSENT *head;
+	FTSENT *head;
 {
-	register FTSENT *p;
+	FTSENT *p;
 
 	/* Free a linked list of structures. */
 	while ((p = head)) {
diff --git a/libio/fileops.c b/libio/fileops.c
index 61b61b30d8..e92f85b243 100644
--- a/libio/fileops.c
+++ b/libio/fileops.c
@@ -1272,7 +1272,7 @@ _IO_new_file_xsputn (f, data, n)
      const void *data;
      _IO_size_t n;
 {
-  register const char *s = (const char *) data;
+  const char *s = (const char *) data;
   _IO_size_t to_do = n;
   int must_flush = 0;
   _IO_size_t count = 0;
@@ -1289,7 +1289,7 @@ _IO_new_file_xsputn (f, data, n)
       count = f->_IO_buf_end - f->_IO_write_ptr;
       if (count >= n)
 	{
-	  register const char *p;
+	  const char *p;
 	  for (p = s + n; p > s; )
 	    {
 	      if (*--p == '\n')
@@ -1357,9 +1357,9 @@ _IO_file_xsgetn (fp, data, n)
      void *data;
      _IO_size_t n;
 {
-  register _IO_size_t want, have;
-  register _IO_ssize_t count;
-  register char *s = data;
+  _IO_size_t want, have;
+  _IO_ssize_t count;
+  char *s = data;
 
   want = n;
 
@@ -1459,9 +1459,9 @@ _IO_file_xsgetn_mmap (fp, data, n)
      void *data;
      _IO_size_t n;
 {
-  register _IO_size_t have;
+  _IO_size_t have;
   char *read_ptr = fp->_IO_read_ptr;
-  register char *s = (char *) data;
+  char *s = (char *) data;
 
   have = fp->_IO_read_end - fp->_IO_read_ptr;
 
diff --git a/libio/iofopncook.c b/libio/iofopncook.c
index 386704215d..34db0cb7f2 100644
--- a/libio/iofopncook.c
+++ b/libio/iofopncook.c
@@ -30,9 +30,9 @@
 #include <shlib-compat.h>
 
 /* Prototyped for local functions.  */
-static _IO_ssize_t _IO_cookie_read (register _IO_FILE* fp, void* buf,
+static _IO_ssize_t _IO_cookie_read (_IO_FILE* fp, void* buf,
 				    _IO_ssize_t size);
-static _IO_ssize_t _IO_cookie_write (register _IO_FILE* fp,
+static _IO_ssize_t _IO_cookie_write (_IO_FILE* fp,
 				     const void* buf, _IO_ssize_t size);
 static _IO_off64_t _IO_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir);
 static _IO_off64_t _IO_cookie_seekoff (_IO_FILE *fp, _IO_off64_t offset,
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index 80e4b57ee2..c9537f4d87 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -689,7 +689,7 @@ _IO_old_file_xsputn (f, data, n)
      const void *data;
      _IO_size_t n;
 {
-  register const char *s = (char *) data;
+  const char *s = (char *) data;
   _IO_size_t to_do = n;
   int must_flush = 0;
   _IO_size_t count = 0;
@@ -706,7 +706,7 @@ _IO_old_file_xsputn (f, data, n)
       count = f->_IO_buf_end - f->_IO_write_ptr;
       if (count >= n)
 	{
-	  register const char *p;
+	  const char *p;
 	  for (p = s + n; p > s; )
 	    {
 	      if (*--p == '\n')
@@ -738,8 +738,8 @@ _IO_old_file_xsputn (f, data, n)
 	}
       else
 	{
-	  register char *p = f->_IO_write_ptr;
-	  register int i = (int) count;
+	  char *p = f->_IO_write_ptr;
+	  int i = (int) count;
 	  while (--i >= 0)
 	    *p++ = *s++;
 	  f->_IO_write_ptr = p;
diff --git a/libio/wfileops.c b/libio/wfileops.c
index d59abbdce7..0a156eaad4 100644
--- a/libio/wfileops.c
+++ b/libio/wfileops.c
@@ -907,7 +907,7 @@ _IO_wfile_xsputn (f, data, n)
      const void *data;
      _IO_size_t n;
 {
-  register const wchar_t *s = (const wchar_t *) data;
+  const wchar_t *s = (const wchar_t *) data;
   _IO_size_t to_do = n;
   int must_flush = 0;
   _IO_size_t count;
@@ -925,7 +925,7 @@ _IO_wfile_xsputn (f, data, n)
       count = f->_wide_data->_IO_buf_end - f->_wide_data->_IO_write_ptr;
       if (count >= n)
 	{
-	  register const wchar_t *p;
+	  const wchar_t *p;
 	  for (p = s + n; p > s; )
 	    {
 	      if (*--p == L'\n')
@@ -955,8 +955,8 @@ _IO_wfile_xsputn (f, data, n)
 	}
       else
 	{
-	  register wchar_t *p = f->_wide_data->_IO_write_ptr;
-	  register int i = (int) count;
+	  wchar_t *p = f->_wide_data->_IO_write_ptr;
+	  int i = (int) count;
 	  while (--i >= 0)
 	    *p++ = *s++;
 	  f->_wide_data->_IO_write_ptr = p;
diff --git a/mach/msgserver.c b/mach/msgserver.c
index fc34d71968..a77377b6d9 100644
--- a/mach/msgserver.c
+++ b/mach/msgserver.c
@@ -78,8 +78,8 @@ __mach_msg_server_timeout (boolean_t (*demux) (mach_msg_header_t *request,
 			   mach_msg_option_t option,
 			   mach_msg_timeout_t timeout)
 {
-  register mig_reply_header_t *request, *reply;
-  register mach_msg_return_t mr;
+  mig_reply_header_t *request, *reply;
+  mach_msg_return_t mr;
 
   if (max_size == 0)
     {
diff --git a/malloc/obstack.c b/malloc/obstack.c
index c3c7db4a96..69320ca143 100644
--- a/malloc/obstack.c
+++ b/malloc/obstack.c
@@ -154,7 +154,7 @@ _obstack_begin (struct obstack *h,
 		void *(*chunkfun) (long),
 		void (*freefun) (void *))
 {
-  register struct _obstack_chunk *chunk; /* points to new chunk */
+  struct _obstack_chunk *chunk; /* points to new chunk */
 
   if (alignment == 0)
     alignment = DEFAULT_ALIGNMENT;
@@ -201,7 +201,7 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment,
 		  void (*freefun) (void *, void *),
 		  void *arg)
 {
-  register struct _obstack_chunk *chunk; /* points to new chunk */
+  struct _obstack_chunk *chunk; /* points to new chunk */
 
   if (alignment == 0)
     alignment = DEFAULT_ALIGNMENT;
@@ -252,11 +252,11 @@ _obstack_begin_1 (struct obstack *h, int size, int alignment,
 void
 _obstack_newchunk (struct obstack *h, int length)
 {
-  register struct _obstack_chunk *old_chunk = h->chunk;
-  register struct _obstack_chunk *new_chunk;
-  register long	new_size;
-  register long obj_size = h->next_free - h->object_base;
-  register long i;
+  struct _obstack_chunk *old_chunk = h->chunk;
+  struct _obstack_chunk *new_chunk;
+  long	new_size;
+  long obj_size = h->next_free - h->object_base;
+  long i;
   long already;
   char *object_base;
 
@@ -329,8 +329,8 @@ int _obstack_allocated_p (struct obstack *h, void *obj);
 int
 _obstack_allocated_p (struct obstack *h, void *obj)
 {
-  register struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
-  register struct _obstack_chunk *plp;	/* point to previous chunk if any */
+  struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
+  struct _obstack_chunk *plp;	/* point to previous chunk if any */
 
   lp = (h)->chunk;
   /* We use >= rather than > since the object cannot be exactly at
@@ -352,8 +352,8 @@ _obstack_allocated_p (struct obstack *h, void *obj)
 void
 obstack_free (struct obstack *h, void *obj)
 {
-  register struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
-  register struct _obstack_chunk *plp;	/* point to previous chunk if any */
+  struct _obstack_chunk *lp;	/* below addr of any objects in this chunk */
+  struct _obstack_chunk *plp;	/* point to previous chunk if any */
 
   lp = h->chunk;
   /* We use >= because there cannot be an object at the beginning of a chunk.
@@ -388,8 +388,8 @@ strong_alias (obstack_free, _obstack_free)
 int
 _obstack_memory_used (struct obstack *h)
 {
-  register struct _obstack_chunk* lp;
-  register int nbytes = 0;
+  struct _obstack_chunk* lp;
+  int nbytes = 0;
 
   for (lp = h->chunk; lp != 0; lp = lp->prev)
     {
diff --git a/misc/getttyent.c b/misc/getttyent.c
index b1e6376fb6..18944e2b99 100644
--- a/misc/getttyent.c
+++ b/misc/getttyent.c
@@ -47,7 +47,7 @@ struct ttyent *
 getttynam(tty)
 	const char *tty;
 {
-	register struct ttyent *t;
+	struct ttyent *t;
 
 	setttyent();
 	while ((t = getttyent()))
@@ -64,8 +64,8 @@ struct ttyent *
 getttyent()
 {
 	static struct ttyent tty;
-	register int c;
-	register char *p;
+	int c;
+	char *p;
 #define	MAXLINELENGTH	100
 	static char line[MAXLINELENGTH];
 
@@ -142,10 +142,10 @@ libc_hidden_def (getttyent)
 static char *
 internal_function
 skip(p)
-	register char *p;
+	char *p;
 {
-	register char *t;
-	register int c, q;
+	char *t;
+	int c, q;
 
 	for (q = 0, t = p; (c = *p) != '\0'; p++) {
 		if (c == '"') {
@@ -177,7 +177,7 @@ skip(p)
 static char *
 internal_function
 value(p)
-	register char *p;
+	char *p;
 {
 
 	return ((p = index(p, '=')) ? ++p : NULL);
diff --git a/misc/getusershell.c b/misc/getusershell.c
index 2e8d97e65c..677377c3f7 100644
--- a/misc/getusershell.c
+++ b/misc/getusershell.c
@@ -95,8 +95,8 @@ setusershell()
 static char **
 initshells()
 {
-	register char **sp, *cp;
-	register FILE *fp;
+	char **sp, *cp;
+	FILE *fp;
 	struct stat64 statb;
 	size_t flen;
 
diff --git a/misc/syslog.c b/misc/syslog.c
index 748361fc8c..4976e89b6e 100644
--- a/misc/syslog.c
+++ b/misc/syslog.c
@@ -229,7 +229,7 @@ __vsyslog_chk(int pri, int flag, const char *fmt, va_list ap)
 	/* Output to stderr if requested. */
 	if (LogStat & LOG_PERROR) {
 		struct iovec iov[2];
-		register struct iovec *v = iov;
+		struct iovec *v = iov;
 
 		v->iov_base = buf + msgoff;
 		v->iov_len = bufsize - msgoff;
diff --git a/misc/ttyslot.c b/misc/ttyslot.c
index 5872f23fd0..75ca6a2d42 100644
--- a/misc/ttyslot.c
+++ b/misc/ttyslot.c
@@ -40,9 +40,9 @@ static char sccsid[] = "@(#)ttyslot.c	8.1 (Berkeley) 6/4/93";
 int
 ttyslot()
 {
-	register struct ttyent *ttyp;
-	register int slot;
-	register char *p;
+	struct ttyent *ttyp;
+	int slot;
+	char *p;
 	int cnt;
 	size_t buflen = __sysconf (_SC_TTY_NAME_MAX) + 1;
 	char *name;
diff --git a/nis/nis_hash.c b/nis/nis_hash.c
index d8a6d06fdd..c927575cc2 100644
--- a/nis/nis_hash.c
+++ b/nis/nis_hash.c
@@ -30,11 +30,11 @@
  * OZ's original sdbm hash
  */
 uint32_t
-__nis_hash (const void *keyarg, register size_t len)
+__nis_hash (const void *keyarg, size_t len)
 {
-  register const u_char *key;
-  register size_t loop;
-  register uint32_t h;
+  const u_char *key;
+  size_t loop;
+  uint32_t h;
 
 #define HASHC   h = *key++ + 65599 * h
 
diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64
index 46cddaff0e..09cb121fa1 100644
--- a/ports/ChangeLog.ia64
+++ b/ports/ChangeLog.ia64
@@ -1,3 +1,11 @@
+2013-06-07  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/ia64/bits/byteswap-16.h [__GNUC__ && __GNUC__ >= 2]
+	(__bswap_16): Do not use "register".
+	* sysdeps/ia64/bits/byteswap.h [__GNUC__ && __GNUC__ >= 2]
+	(__bswap_32): Likewise.
+	[__GNUC__ && __GNUC__ >= 2] (__bswap_64): Likewise.
+
 2013-05-22  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
 
 	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (siginfo_t): Add
diff --git a/ports/sysdeps/ia64/bits/byteswap-16.h b/ports/sysdeps/ia64/bits/byteswap-16.h
index 2ff9b749c9..d91824e5b2 100644
--- a/ports/sysdeps/ia64/bits/byteswap-16.h
+++ b/ports/sysdeps/ia64/bits/byteswap-16.h
@@ -23,7 +23,7 @@
 #if defined __GNUC__ && __GNUC__ >= 2
 # define __bswap_16(x) \
      (__extension__							      \
-      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
+      ({ unsigned short int __v, __x = (unsigned short int) (x);	      \
 	 if (__builtin_constant_p (x))					      \
 	   __v = __bswap_constant_16 (__x);				      \
 	 else								      \
diff --git a/ports/sysdeps/ia64/bits/byteswap.h b/ports/sysdeps/ia64/bits/byteswap.h
index b9b590269a..447cadfe73 100644
--- a/ports/sysdeps/ia64/bits/byteswap.h
+++ b/ports/sysdeps/ia64/bits/byteswap.h
@@ -38,7 +38,7 @@
 #if defined __GNUC__ && __GNUC__ >= 2
 # define __bswap_32(x) \
      (__extension__							      \
-      ({ register unsigned int __v, __x = (x);				      \
+      ({ unsigned int __v, __x = (x);					      \
 	 if (__builtin_constant_p (x))					      \
 	   __v = __bswap_constant_32 (__x);				      \
 	 else								      \
@@ -70,7 +70,7 @@ __bswap_32 (unsigned int __bsx)
 
 # define __bswap_64(x) \
      (__extension__							      \
-      ({ register unsigned long int __v, __x = (x);			      \
+      ({ unsigned long int __v, __x = (x);				      \
 	 if (__builtin_constant_p (x))					      \
 	   __v = __bswap_constant_64 (__x);				      \
 	 else								      \
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 6c4301df13..078b98242e 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -47,8 +47,8 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
      struct STRUCT *ends;
      size_t alloca_used;
 {
-  register const CHAR *p = pattern, *n = string;
-  register UCHAR c;
+  const CHAR *p = pattern, *n = string;
+  UCHAR c;
 #ifdef _LIBC
 # if WIDE_CHAR_VERSION
   const char *collseq = (const char *)
@@ -237,7 +237,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
 	    /* Nonzero if the sense of the character class is inverted.  */
 	    const CHAR *p_init = p;
 	    const CHAR *n_init = n;
-	    register int not;
+	    int not;
 	    CHAR cold;
 	    UCHAR fn;
 
diff --git a/posix/getconf.c b/posix/getconf.c
index 8a0c79bf34..878772022d 100644
--- a/posix/getconf.c
+++ b/posix/getconf.c
@@ -1043,7 +1043,7 @@ usage (void)
 static void
 print_all (const char *path)
 {
-  register const struct conf *c;
+  const struct conf *c;
   size_t clen;
   long int value;
   char *cvalue;
@@ -1087,7 +1087,7 @@ print_all (const char *path)
 int
 main (int argc, char *argv[])
 {
-  register const struct conf *c;
+  const struct conf *c;
 
   /* Set locale.  Do not set LC_ALL because the other categories must
      not be affected (according to POSIX.2).  */
diff --git a/posix/getopt.c b/posix/getopt.c
index 20b8eb30bf..5497fc4247 100644
--- a/posix/getopt.c
+++ b/posix/getopt.c
@@ -227,7 +227,7 @@ exchange (char **argv, struct _getopt_data *d)
 	{
 	  /* Bottom segment is the short one.  */
 	  int len = middle - bottom;
-	  register int i;
+	  int i;
 
 	  /* Swap it with the top part of the top segment.  */
 	  for (i = 0; i < len; i++)
@@ -244,7 +244,7 @@ exchange (char **argv, struct _getopt_data *d)
 	{
 	  /* Top segment is the short one.  */
 	  int len = top - middle;
-	  register int i;
+	  int i;
 
 	  /* Swap it with the bottom part of the bottom segment.  */
 	  for (i = 0; i < len; i++)
diff --git a/posix/glob.c b/posix/glob.c
index 83b4f2fed3..4c7dce5ee8 100644
--- a/posix/glob.c
+++ b/posix/glob.c
@@ -1263,7 +1263,7 @@ libc_hidden_def (glob)
 /* Free storage allocated in PGLOB by a previous `glob' call.  */
 void
 globfree (pglob)
-     register glob_t *pglob;
+     glob_t *pglob;
 {
   if (pglob->gl_pathv != NULL)
     {
@@ -1303,7 +1303,7 @@ collated_compare (const void *a, const void *b)
 static int
 prefix_array (const char *dirname, char **array, size_t n)
 {
-  register size_t i;
+  size_t i;
   size_t dirlen = strlen (dirname);
 #if defined __MSDOS__ || defined WINDOWS32
   int sep_char = '/';
@@ -1362,7 +1362,7 @@ __glob_pattern_type (pattern, quote)
      const char *pattern;
      int quote;
 {
-  register const char *p;
+  const char *p;
   int ret = 0;
 
   for (p = pattern; *p != '\0'; ++p)
diff --git a/resolv/arpa/nameser.h b/resolv/arpa/nameser.h
index 6a2c8376bd..fb8513ba9b 100644
--- a/resolv/arpa/nameser.h
+++ b/resolv/arpa/nameser.h
@@ -433,7 +433,7 @@ typedef enum __ns_cert_types {
  * Inline versions of get/put short/long.  Pointer is advanced.
  */
 #define NS_GET16(s, cp) do { \
-	register const u_char *t_cp = (const u_char *)(cp); \
+	const u_char *t_cp = (const u_char *)(cp); \
 	(s) = ((u_int16_t)t_cp[0] << 8) \
 	    | ((u_int16_t)t_cp[1]) \
 	    ; \
@@ -441,7 +441,7 @@ typedef enum __ns_cert_types {
 } while (0)
 
 #define NS_GET32(l, cp) do { \
-	register const u_char *t_cp = (const u_char *)(cp); \
+	const u_char *t_cp = (const u_char *)(cp); \
 	(l) = ((u_int32_t)t_cp[0] << 24) \
 	    | ((u_int32_t)t_cp[1] << 16) \
 	    | ((u_int32_t)t_cp[2] << 8) \
@@ -451,16 +451,16 @@ typedef enum __ns_cert_types {
 } while (0)
 
 #define NS_PUT16(s, cp) do { \
-	register u_int16_t t_s = (u_int16_t)(s); \
-	register u_char *t_cp = (u_char *)(cp); \
+	u_int16_t t_s = (u_int16_t)(s); \
+	u_char *t_cp = (u_char *)(cp); \
 	*t_cp++ = t_s >> 8; \
 	*t_cp   = t_s; \
 	(cp) += NS_INT16SZ; \
 } while (0)
 
 #define NS_PUT32(l, cp) do { \
-	register u_int32_t t_l = (u_int32_t)(l); \
-	register u_char *t_cp = (u_char *)(cp); \
+	u_int32_t t_l = (u_int32_t)(l); \
+	u_char *t_cp = (u_char *)(cp); \
 	*t_cp++ = t_l >> 24; \
 	*t_cp++ = t_l >> 16; \
 	*t_cp++ = t_l >> 8; \
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index a8ccf1fd3a..9568c06475 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -178,9 +178,9 @@ Dprintf(msg, num)
 static struct hostent *
 getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 {
-	register const HEADER *hp;
-	register const u_char *cp;
-	register int n;
+	const HEADER *hp;
+	const u_char *cp;
+	int n;
 	const u_char *eom, *erdata;
 	char *bp, **ap, **hap;
 	int type, class, buflen, ancount, qdcount;
@@ -409,7 +409,7 @@ getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
 				continue;
 			}
 			if (!haveanswer) {
-				register int nn;
+				int nn;
 
 				host.h_name = bp;
 				nn = strlen(bp) + 1;	/* for the \0 */
@@ -514,7 +514,7 @@ gethostbyname2(name, af)
 	  u_char *ptr;
 	} buf;
 	querybuf *origbuf;
-	register const char *cp;
+	const char *cp;
 	char *bp;
 	int n, size, type, len;
 	struct hostent *ret;
@@ -653,10 +653,10 @@ gethostbyaddr(addr, len, af)
 	  u_char *ptr;
 	} buf;
 	querybuf *orig_buf;
-	register struct hostent *hp;
+	struct hostent *hp;
 	char qbuf[MAXDNAME+1], *qp = NULL;
 #ifdef SUNSECURITY
-	register struct hostent *rhp;
+	struct hostent *rhp;
 	char **haddr;
 	u_long old_options;
 	char hname2[MAXDNAME+1];
@@ -807,7 +807,7 @@ struct hostent *
 _gethtent()
 {
 	char *p;
-	register char *cp, **q;
+	char *cp, **q;
 	int af, len;
 
 	if (!hostf && !(hostf = fopen(_PATH_HOSTS, "rce" ))) {
@@ -888,8 +888,8 @@ _gethtbyname2(name, af)
 	const char *name;
 	int af;
 {
-	register struct hostent *p;
-	register char **cp;
+	struct hostent *p;
+	char **cp;
 
 	_sethtent(0);
 	while ((p = _gethtent())) {
@@ -913,7 +913,7 @@ _gethtbyaddr(addr, len, af)
 	size_t len;
 	int af;
 {
-	register struct hostent *p;
+	struct hostent *p;
 
 	_sethtent(0);
 	while ((p = _gethtent()))
diff --git a/resolv/ns_print.c b/resolv/ns_print.c
index 36d39784a5..800680d371 100644
--- a/resolv/ns_print.c
+++ b/resolv/ns_print.c
@@ -935,7 +935,7 @@ dst_s_id_calc(const u_char *key, const int keysize)
 static u_int16_t
 dst_s_get_int16(const u_char *buf)
 {
-	register u_int16_t a = 0;
+	u_int16_t a = 0;
 	a = ((u_int16_t)(buf[0] << 8)) | ((u_int16_t)(buf[1]));
 	return (a);
 }
diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
index af5c166da9..9018bb98a6 100644
--- a/resolv/nss_dns/dns-host.c
+++ b/resolv/nss_dns/dns-host.c
@@ -601,7 +601,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
     char *h_addr_ptrs[0];
   } *host_data;
   int linebuflen;
-  register const HEADER *hp;
+  const HEADER *hp;
   const u_char *end_of_message, *cp;
   int n, ancount, qdcount;
   int haveanswer, had_error;
@@ -920,7 +920,7 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
 	    }
 	  if (!haveanswer)
 	    {
-	      register int nn;
+	      int nn;
 
 	      /* We compose a single hostent out of the entire chain of
 	         entries, so the TTL of the hostent is essentially the lowest
diff --git a/resolv/res_init.c b/resolv/res_init.c
index 002dec5c57..5e1a747a4a 100644
--- a/resolv/res_init.c
+++ b/resolv/res_init.c
@@ -149,9 +149,9 @@ libc_hidden_def (__res_ninit)
 /* This function has to be reachable by res_data.c but not publically. */
 int
 __res_vinit(res_state statp, int preinit) {
-	register FILE *fp;
-	register char *cp, **pp;
-	register int n;
+	FILE *fp;
+	char *cp, **pp;
+	int n;
 	char buf[BUFSIZ];
 	int nserv = 0;    /* number of nameserver records read from file */
 #ifdef _LIBC
@@ -571,7 +571,7 @@ static u_int32_t
 net_mask(in)		/* XXX - should really use system's version of this */
 	struct in_addr in;
 {
-	register u_int32_t i = ntohl(in.s_addr);
+	u_int32_t i = ntohl(in.s_addr);
 
 	if (IN_CLASSA(i))
 		return (htonl(IN_CLASSA_NET));
diff --git a/resolv/res_mkquery.c b/resolv/res_mkquery.c
index e2c6a742c0..c0798dc54e 100644
--- a/resolv/res_mkquery.c
+++ b/resolv/res_mkquery.c
@@ -104,9 +104,9 @@ res_nmkquery(res_state statp,
 	     u_char *buf,		/* buffer to put query */
 	     int buflen)		/* size of buffer */
 {
-	register HEADER *hp;
-	register u_char *cp;
-	register int n;
+	HEADER *hp;
+	u_char *cp;
+	int n;
 	u_char *dnptrs[20], **dpp, **lastdnptr;
 
 #ifdef DEBUG
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index ad60f43eac..e20eab6a34 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -72,7 +72,7 @@
 #define outchar(ch)							      \
   do									      \
     {									      \
-      register const int outc = (ch);					      \
+      const int outc = (ch);						      \
       if (putc (outc, fp) == EOF)					      \
 	{								      \
 	  if (buffer_malloced)						      \
@@ -85,7 +85,7 @@
 #define PRINT(ptr, wptr, len)						      \
   do									      \
     {									      \
-      register size_t outlen = (len);					      \
+      size_t outlen = (len);						      \
       if (len > 20)							      \
 	{								      \
 	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c
index fc3c9b232c..3da2eec40c 100644
--- a/stdio-common/printf_fphex.c
+++ b/stdio-common/printf_fphex.c
@@ -52,7 +52,7 @@
 #define outchar(ch)							      \
   do									      \
     {									      \
-      register const int outc = (ch);					      \
+      const int outc = (ch);						      \
       if (putc (outc, fp) == EOF)					      \
 	return -1;							      \
       ++done;								      \
@@ -61,7 +61,7 @@
 #define PRINT(ptr, wptr, len)						      \
   do									      \
     {									      \
-      register size_t outlen = (len);					      \
+      size_t outlen = (len);						      \
       if (wide)								      \
 	while (outlen-- > 0)						      \
 	  outchar (*wptr++);						      \
diff --git a/stdio-common/printf_size.c b/stdio-common/printf_size.c
index 68b08392ca..2c496e5b2f 100644
--- a/stdio-common/printf_size.c
+++ b/stdio-common/printf_size.c
@@ -42,7 +42,7 @@
 #define outchar(ch)							      \
   do									      \
     {									      \
-      register const int outc = (ch);					      \
+      const int outc = (ch);						      \
       if (putc (outc, fp) == EOF)					      \
 	return -1;							      \
       ++done;								      \
@@ -51,7 +51,7 @@
 #define PRINT(ptr, wptr, len)						      \
   do									      \
     {									      \
-      register size_t outlen = (len);					      \
+      size_t outlen = (len);						      \
       if (len > 20)							      \
 	{								      \
 	  if (PUT (fp, wide ? (const char *) wptr : ptr, outlen) != outlen)   \
diff --git a/stdio-common/test_rdwr.c b/stdio-common/test_rdwr.c
index 93b0fa438c..2be8365a39 100644
--- a/stdio-common/test_rdwr.c
+++ b/stdio-common/test_rdwr.c
@@ -78,7 +78,7 @@ main (int argc, char **argv)
     long int where = ftell (f);
     if (where == (long int) replace_from)
       {
-	register size_t i;
+	size_t i;
 	for (i = replace_from; i < replace_to; ++i)
 	  if (putc(replace[i], f) == EOF)
 	    {
diff --git a/stdio-common/tfformat.c b/stdio-common/tfformat.c
index 7704ddde39..5cb366dd48 100644
--- a/stdio-common/tfformat.c
+++ b/stdio-common/tfformat.c
@@ -4050,7 +4050,7 @@ sprint_double_type sprint_doubles[] =
 int required_precision = 13;
 
 static int
-matches (register char *result, register const char *desired)
+matches (char *result, const char *desired)
 {
     int digits_seen = 0;
     for (;; result++, desired++) {
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index c8bcf5a976..fb22f6969e 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -147,7 +147,7 @@
 #define	outchar(Ch)							      \
   do									      \
     {									      \
-      register const INT_T outc = (Ch);					      \
+      const INT_T outc = (Ch);						      \
       if (PUTC (outc, s) == EOF || done == INT_MAX)			      \
 	{								      \
 	  done = -1;							      \
@@ -2061,7 +2061,7 @@ printf_unknown (FILE *s, const struct printf_info *info,
   CHAR_T work_buffer[MAX (sizeof (info->width), sizeof (info->prec)) * 3];
   CHAR_T *const workend
     = &work_buffer[sizeof (work_buffer) / sizeof (CHAR_T)];
-  register CHAR_T *w;
+  CHAR_T *w;
 
   outchar (L_('%'));
 
@@ -2267,12 +2267,12 @@ static const struct _IO_jump_t _IO_helper_jumps =
 
 static int
 internal_function
-buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
+buffered_vfprintf (_IO_FILE *s, const CHAR_T *format,
 		   _IO_va_list args)
 {
   CHAR_T buf[_IO_BUFSIZ];
   struct helper_file helper;
-  register _IO_FILE *hp = (_IO_FILE *) &helper._f;
+  _IO_FILE *hp = (_IO_FILE *) &helper._f;
   int result, to_flush;
 
   /* Orient the stream.  */
diff --git a/stdio-common/vfscanf.c b/stdio-common/vfscanf.c
index 82f7eee192..343056769e 100644
--- a/stdio-common/vfscanf.c
+++ b/stdio-common/vfscanf.c
@@ -206,13 +206,13 @@ _IO_vfscanf_internal (_IO_FILE *s, const char *format, _IO_va_list argptr,
 #endif
 {
   va_list arg;
-  register const CHAR_T *f = format;
-  register UCHAR_T fc;	/* Current character of the format.  */
-  register WINT_T done = 0;	/* Assignments done.  */
-  register size_t read_in = 0;	/* Chars read in.  */
-  register WINT_T c = 0;	/* Last char read.  */
-  register int width;		/* Maximum field width.  */
-  register int flags;		/* Modifiers for current format element.  */
+  const CHAR_T *f = format;
+  UCHAR_T fc;	/* Current character of the format.  */
+  WINT_T done = 0;	/* Assignments done.  */
+  size_t read_in = 0;	/* Chars read in.  */
+  WINT_T c = 0;	/* Last char read.  */
+  int width;		/* Maximum field width.  */
+  int flags;		/* Modifiers for current format element.  */
   int errval = 0;
 #ifndef COMPILE_WSCANF
   __locale_t loc = _NL_CURRENT_LOCALE;
diff --git a/stdio-common/xbug.c b/stdio-common/xbug.c
index 76a8c54726..64ba314cbe 100644
--- a/stdio-common/xbug.c
+++ b/stdio-common/xbug.c
@@ -9,8 +9,8 @@ typedef struct _Buffer {
 } Buffer;
 
 void InitBuffer (Buffer *b);
-void AppendToBuffer (register Buffer *b, const char *str, register int len);
-void ReadFile (register Buffer *buffer, FILE *input);
+void AppendToBuffer (Buffer *b, const char *str, int len);
+void ReadFile (Buffer *buffer, FILE *input);
 
 #define INIT_BUFFER_SIZE 10000
 
@@ -23,9 +23,9 @@ void InitBuffer(b)
 }
 
 void AppendToBuffer(b, str, len)
-     register Buffer *b;
+     Buffer *b;
      const char *str;
-     register int len;
+     int len;
 {
   while (b->used + len > b->room) {
     b->buff = (char *)realloc(b->buff, 2*b->room*(sizeof(char)));
@@ -36,11 +36,11 @@ void AppendToBuffer(b, str, len)
 }
 
 void ReadFile(buffer, input)
-     register Buffer *buffer;
+     Buffer *buffer;
      FILE *input;
 {
   char       buf[BUFSIZ + 1];
-  register int        bytes;
+  int        bytes;
 
   buffer->used = 0;
   while (!feof(input) && (bytes = fread(buf, 1, BUFSIZ, input)) > 0) {
diff --git a/stdlib/qsort.c b/stdlib/qsort.c
index ccbdccc7b5..471c66217f 100644
--- a/stdlib/qsort.c
+++ b/stdlib/qsort.c
@@ -29,8 +29,8 @@
 #define SWAP(a, b, size)						      \
   do									      \
     {									      \
-      register size_t __size = (size);					      \
-      register char *__a = (a), *__b = (b);				      \
+      size_t __size = (size);						      \
+      char *__a = (a), *__b = (b);					      \
       do								      \
 	{								      \
 	  char __tmp = *__a;						      \
@@ -89,7 +89,7 @@ void
 _quicksort (void *const pbase, size_t total_elems, size_t size,
 	    __compar_d_fn_t cmp, void *arg)
 {
-  register char *base_ptr = (char *) pbase;
+  char *base_ptr = (char *) pbase;
 
   const size_t max_thresh = MAX_THRESH * size;
 
@@ -206,7 +206,7 @@ _quicksort (void *const pbase, size_t total_elems, size_t size,
     char *const end_ptr = &base_ptr[size * (total_elems - 1)];
     char *tmp_ptr = base_ptr;
     char *thresh = min(end_ptr, base_ptr + max_thresh);
-    register char *run_ptr;
+    char *run_ptr;
 
     /* Find smallest element in first threshold and place it at the
        array's beginning.  This is the smallest array element,
diff --git a/stdlib/setenv.c b/stdlib/setenv.c
index a9ebe3315f..fdcd8e1d08 100644
--- a/stdlib/setenv.c
+++ b/stdlib/setenv.c
@@ -112,8 +112,8 @@ __add_to_environ (name, value, combined, replace)
      const char *combined;
      int replace;
 {
-  register char **ep;
-  register size_t size;
+  char **ep;
+  size_t size;
   const size_t namelen = strlen (name);
   const size_t vallen = value != NULL ? strlen (value) + 1 : 0;
 
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index 2eec876a9e..5b41e2b06e 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -1175,10 +1175,9 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
      really integer digits or belong to the fractional part; i.e. we normalize
      123e-2 to 1.23.  */
   {
-    register intmax_t incr = (exponent < 0
-			      ? MAX (-(intmax_t) int_no, exponent)
-			      : MIN ((intmax_t) dig_no - (intmax_t) int_no,
-				     exponent));
+    intmax_t incr = (exponent < 0
+		     ? MAX (-(intmax_t) int_no, exponent)
+		     : MIN ((intmax_t) dig_no - (intmax_t) int_no, exponent));
     int_no += incr;
     exponent -= incr;
   }
@@ -1499,7 +1498,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
 #define got_limb							      \
 	      if (bits == 0)						      \
 		{							      \
-		  register int cnt;					      \
+		  int cnt;						      \
 		  if (quot == 0)					      \
 		    cnt = BITS_PER_MP_LIMB;				      \
 		  else							      \
@@ -1651,7 +1650,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
 	  if (numsize < densize)
 	    {
 	      mp_size_t empty = densize - numsize;
-	      register int i;
+	      int i;
 
 	      if (bits <= 0)
 		exponent -= empty * BITS_PER_MP_LIMB;
@@ -1679,7 +1678,7 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
 		      used = MANT_DIG - bits;
 		      if (used >= BITS_PER_MP_LIMB)
 			{
-			  register int i;
+			  int i;
 			  (void) __mpn_lshift (&retval[used
 						       / BITS_PER_MP_LIMB],
 					       retval,
diff --git a/stdlib/strtol_l.c b/stdlib/strtol_l.c
index 874708ab00..dc47608b0c 100644
--- a/stdlib/strtol_l.c
+++ b/stdlib/strtol_l.c
@@ -231,11 +231,11 @@ INTERNAL (__strtol_l) (nptr, endptr, base, group, loc)
      __locale_t loc;
 {
   int negative;
-  register unsigned LONG int cutoff;
-  register unsigned int cutlim;
-  register unsigned LONG int i;
-  register const STRING_TYPE *s;
-  register UCHAR_TYPE c;
+  unsigned LONG int cutoff;
+  unsigned int cutlim;
+  unsigned LONG int i;
+  const STRING_TYPE *s;
+  UCHAR_TYPE c;
   const STRING_TYPE *save, *end;
   int overflow;
 #ifndef USE_WIDE_CHAR
diff --git a/stdlib/tst-strtod.c b/stdlib/tst-strtod.c
index 0154aadef6..acd1377b2b 100644
--- a/stdlib/tst-strtod.c
+++ b/stdlib/tst-strtod.c
@@ -85,7 +85,7 @@ int
 main (int argc, char ** argv)
 {
   char buf[100];
-  register const struct ltest *lt;
+  const struct ltest *lt;
   char *ep;
   int status = 0;
   int save_errno;
@@ -184,7 +184,7 @@ main (int argc, char ** argv)
 static void
 expand (dst, c)
      char *dst;
-     register int c;
+     int c;
 {
   if (isprint (c))
     {
diff --git a/stdlib/tst-strtol.c b/stdlib/tst-strtol.c
index f569e55092..eebd8f7afa 100644
--- a/stdlib/tst-strtol.c
+++ b/stdlib/tst-strtol.c
@@ -537,14 +537,14 @@ static void expand (char *dst, int c);
 int
 main (void)
 {
-  register const struct ltest *lt;
+  const struct ltest *lt;
   char *ep;
   int status = 0;
   int save_errno;
 
   for (lt = tests; lt->str != NULL; ++lt)
     {
-      register long int l;
+      long int l;
 
       errno = 0;
       l = strtol (lt->str, &ep, lt->base);
@@ -577,7 +577,7 @@ main (void)
 
   for (++lt; lt->str != NULL; lt++)
     {
-      register unsigned long int ul;
+      unsigned long int ul;
 
       errno = 0;
       ul = strtoul (lt->str, &ep, lt->base);
diff --git a/stdlib/tst-strtoll.c b/stdlib/tst-strtoll.c
index ba3338241b..0c77254d52 100644
--- a/stdlib/tst-strtoll.c
+++ b/stdlib/tst-strtoll.c
@@ -312,14 +312,14 @@ static void expand (char *dst, int c);
 int
 main (void)
 {
-  register const struct ltest *lt;
+  const struct ltest *lt;
   char *ep;
   int status = 0;
   int save_errno;
 
   for (lt = tests; lt->str != NULL; ++lt)
     {
-      register long long int l;
+      long long int l;
 
       errno = 0;
       l = strtoll (lt->str, &ep, lt->base);
@@ -352,7 +352,7 @@ main (void)
 
   for (++lt; lt->str != NULL; lt++)
     {
-      register unsigned long long int ul;
+      unsigned long long int ul;
 
       errno = 0;
       ul = strtoull (lt->str, &ep, lt->base);
diff --git a/string/bits/string2.h b/string/bits/string2.h
index ddd1c045a0..9369a7c4d9 100644
--- a/string/bits/string2.h
+++ b/string/bits/string2.h
@@ -839,7 +839,7 @@ __stpcpy_small (char *__dest,
 # endif
 
 # define __strcmp_cc(s1, s2, l) \
-  (__extension__ ({ register int __result =				      \
+  (__extension__ ({ int __result =					      \
 		      (((const unsigned char *) (const char *) (s1))[0]	      \
 		       - ((const unsigned char *) (const char *)(s2))[0]);    \
 		    if (l > 0 && __result == 0)				      \
@@ -868,7 +868,7 @@ __stpcpy_small (char *__dest,
 # define __strcmp_cg(s1, s2, l1) \
   (__extension__ ({ const unsigned char *__s2 =				      \
 		      (const unsigned char *) (const char *) (s2);	      \
-		    register int __result =				      \
+		    int __result =					      \
 		      (((const unsigned char *) (const char *) (s1))[0]	      \
 		       - __s2[0]);					      \
 		    if (l1 > 0 && __result == 0)			      \
@@ -946,7 +946,7 @@ __STRING_INLINE size_t __strcspn_c1 (const char *__s, int __reject);
 __STRING_INLINE size_t
 __strcspn_c1 (const char *__s, int __reject)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject)
     ++__result;
   return __result;
@@ -957,7 +957,7 @@ __STRING_INLINE size_t __strcspn_c2 (const char *__s, int __reject1,
 __STRING_INLINE size_t
 __strcspn_c2 (const char *__s, int __reject1, int __reject2)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject1
 	 && __s[__result] != __reject2)
     ++__result;
@@ -970,7 +970,7 @@ __STRING_INLINE size_t
 __strcspn_c3 (const char *__s, int __reject1, int __reject2,
 	      int __reject3)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject1
 	 && __s[__result] != __reject2 && __s[__result] != __reject3)
     ++__result;
@@ -1022,7 +1022,7 @@ __STRING_INLINE size_t __strspn_c1 (const char *__s, int __accept);
 __STRING_INLINE size_t
 __strspn_c1 (const char *__s, int __accept)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   /* Please note that __accept never can be '\0'.  */
   while (__s[__result] == __accept)
     ++__result;
@@ -1034,7 +1034,7 @@ __STRING_INLINE size_t __strspn_c2 (const char *__s, int __accept1,
 __STRING_INLINE size_t
 __strspn_c2 (const char *__s, int __accept1, int __accept2)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   /* Please note that __accept1 and __accept2 never can be '\0'.  */
   while (__s[__result] == __accept1 || __s[__result] == __accept2)
     ++__result;
@@ -1046,7 +1046,7 @@ __STRING_INLINE size_t __strspn_c3 (const char *__s, int __accept1,
 __STRING_INLINE size_t
 __strspn_c3 (const char *__s, int __accept1, int __accept2, int __accept3)
 {
-  register size_t __result = 0;
+  size_t __result = 0;
   /* Please note that __accept1 to __accept3 never can be '\0'.  */
   while (__s[__result] == __accept1 || __s[__result] == __accept2
 	 || __s[__result] == __accept3)
@@ -1198,7 +1198,7 @@ __STRING_INLINE char *__strsep_1c (char **__s, char __reject);
 __STRING_INLINE char *
 __strsep_1c (char **__s, char __reject)
 {
-  register char *__retval = *__s;
+  char *__retval = *__s;
   if (__retval != NULL && (*__s = strchr (__retval, __reject)) != NULL)
     *(*__s)++ = '\0';
   return __retval;
@@ -1208,10 +1208,10 @@ __STRING_INLINE char *__strsep_2c (char **__s, char __reject1, char __reject2);
 __STRING_INLINE char *
 __strsep_2c (char **__s, char __reject1, char __reject2)
 {
-  register char *__retval = *__s;
+  char *__retval = *__s;
   if (__retval != NULL)
     {
-      register char *__cp = __retval;
+      char *__cp = __retval;
       while (1)
 	{
 	  if (*__cp == '\0')
@@ -1236,10 +1236,10 @@ __STRING_INLINE char *__strsep_3c (char **__s, char __reject1, char __reject2,
 __STRING_INLINE char *
 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
 {
-  register char *__retval = *__s;
+  char *__retval = *__s;
   if (__retval != NULL)
     {
-      register char *__cp = __retval;
+      char *__cp = __retval;
       while (1)
 	{
 	  if (*__cp == '\0')
diff --git a/string/memccpy.c b/string/memccpy.c
index d2c024427d..2a3303221a 100644
--- a/string/memccpy.c
+++ b/string/memccpy.c
@@ -30,10 +30,10 @@ __memccpy (dest, src, c, n)
       int c;
       size_t n;
 {
-  register const char *s = src;
-  register char *d = dest;
-  register const char x = c;
-  register size_t i = n;
+  const char *s = src;
+  char *d = dest;
+  const char x = c;
+  size_t i = n;
 
   while (i-- > 0)
     if ((*d++ = *s++) == x)
diff --git a/string/stpcpy.c b/string/stpcpy.c
index 93e251081d..8ece3d9a78 100644
--- a/string/stpcpy.c
+++ b/string/stpcpy.c
@@ -34,8 +34,8 @@ __stpcpy (dest, src)
      char *dest;
      const char *src;
 {
-  register char *d = dest;
-  register const char *s = src;
+  char *d = dest;
+  const char *s = src;
 
   do
     *d++ = *s;
diff --git a/string/strcmp.c b/string/strcmp.c
index b7a53d3452..a4645638eb 100644
--- a/string/strcmp.c
+++ b/string/strcmp.c
@@ -28,8 +28,8 @@ strcmp (p1, p2)
      const char *p1;
      const char *p2;
 {
-  register const unsigned char *s1 = (const unsigned char *) p1;
-  register const unsigned char *s2 = (const unsigned char *) p2;
+  const unsigned char *s1 = (const unsigned char *) p1;
+  const unsigned char *s2 = (const unsigned char *) p2;
   unsigned char c1, c2;
 
   do
diff --git a/string/strrchr.c b/string/strrchr.c
index 2bf34991e8..bdec841c87 100644
--- a/string/strrchr.c
+++ b/string/strrchr.c
@@ -23,7 +23,7 @@
 char *
 strrchr (const char *s, int c)
 {
-  register const char *found, *p;
+  const char *found, *p;
 
   c = (unsigned char) c;
 
diff --git a/sysdeps/generic/sigset-cvt-mask.h b/sysdeps/generic/sigset-cvt-mask.h
index 91d1f8e5b8..bc42bdc6fb 100644
--- a/sysdeps/generic/sigset-cvt-mask.h
+++ b/sysdeps/generic/sigset-cvt-mask.h
@@ -29,7 +29,7 @@ sigset_set_old_mask (sigset_t *set, int mask)
     *set = (unsigned int) mask;
   else
     {
-      register unsigned int __sig;
+      unsigned int __sig;
 
       if (__sigemptyset (set) < 0)
 	return -1;
@@ -52,7 +52,7 @@ sigset_get_old_mask (const sigset_t *set)
   else
     {
       unsigned int mask = 0;
-      register unsigned int sig;
+      unsigned int sig;
 
       for (sig = 1; sig < NSIG && sig <= sizeof (mask) * 8; sig++)
 	if (__sigismember (set, sig))
diff --git a/sysdeps/mach/hurd/getcwd.c b/sysdeps/mach/hurd/getcwd.c
index 43e0a2ccc1..10822d2a78 100644
--- a/sysdeps/mach/hurd/getcwd.c
+++ b/sysdeps/mach/hurd/getcwd.c
@@ -45,7 +45,7 @@ _hurd_canonicalize_directory_name_internal (file_t thisdir,
   mach_port_t rootid, thisid, rootdevid, thisdevid;
   ino64_t rootino, thisino;
   char *file_name;
-  register char *file_namep;
+  char *file_namep;
   file_t parent;
   char *dirbuf = NULL;
   unsigned int dirbufsize = 0;
diff --git a/sysdeps/mach/i386/sysdep.h b/sysdeps/mach/i386/sysdep.h
index c26063c661..001fe98f5b 100644
--- a/sysdeps/mach/i386/sysdep.h
+++ b/sysdeps/mach/i386/sysdep.h
@@ -28,7 +28,7 @@
 #define SNARF_ARGS(entry_sp, argc, argv, envp)				      \
   do									      \
     {									      \
-      register char **p;						      \
+      char **p;								      \
       argc = (int) *entry_sp;						      \
       argv = (char **) (entry_sp + 1);					      \
       p = argv;								      \
diff --git a/sysdeps/powerpc/powerpc32/power6/wcschr.c b/sysdeps/powerpc/powerpc32/power6/wcschr.c
index a989877bb8..1ba64e113a 100644
--- a/sysdeps/powerpc/powerpc32/power6/wcschr.c
+++ b/sysdeps/powerpc/powerpc32/power6/wcschr.c
@@ -22,10 +22,10 @@
 /* Find the first occurrence of WC in WCS.  */
 wchar_t *
 wcschr (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
-  register const wchar_t *wcs2 = wcs + 1;
+  const wchar_t *wcs2 = wcs + 1;
 
   if (*wcs == wc)
     return (wchar_t *) wcs;
diff --git a/sysdeps/powerpc/powerpc32/power6/wcsrchr.c b/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
index d0ff9f69cf..8d26af05fb 100644
--- a/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
+++ b/sysdeps/powerpc/powerpc32/power6/wcsrchr.c
@@ -22,10 +22,10 @@
 /* Find the last occurrence of WC in WCS.  */
 wchar_t *
 wcsrchr (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
-  register const wchar_t *wcs2 = wcs + 1;
+  const wchar_t *wcs2 = wcs + 1;
   const wchar_t *retval = NULL;
 
   if (*wcs == wc)
diff --git a/sysdeps/x86/bits/byteswap-16.h b/sysdeps/x86/bits/byteswap-16.h
index 9bb70fb608..fbb8ccc949 100644
--- a/sysdeps/x86/bits/byteswap-16.h
+++ b/sysdeps/x86/bits/byteswap-16.h
@@ -24,7 +24,7 @@
 # if __GNUC__ >= 2
 #  define __bswap_16(x) \
      (__extension__							      \
-      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
+      ({ unsigned short int __v, __x = (unsigned short int) (x);	      \
 	 if (__builtin_constant_p (__x))				      \
 	   __v = __bswap_constant_16 (__x);				      \
 	 else								      \
@@ -37,7 +37,7 @@
 /* This is better than nothing.  */
 #  define __bswap_16(x) \
      (__extension__							      \
-      ({ register unsigned short int __x = (unsigned short int) (x);	      \
+      ({ unsigned short int __x = (unsigned short int) (x);		      \
 	 __bswap_constant_16 (__x); }))
 # endif
 #else
diff --git a/sysdeps/x86/bits/byteswap.h b/sysdeps/x86/bits/byteswap.h
index 9e2effc1a6..6cb7b01c2b 100644
--- a/sysdeps/x86/bits/byteswap.h
+++ b/sysdeps/x86/bits/byteswap.h
@@ -57,7 +57,7 @@ __bswap_32 (unsigned int __bsx)
    `bswap' opcode.  On i386 we have to use three instructions.  */
 #   define __bswap_32(x) \
       (__extension__							      \
-       ({ register unsigned int __v, __x = (x);				      \
+       ({ unsigned int __v, __x = (x);					      \
 	  if (__builtin_constant_p (__x))				      \
 	    __v = __bswap_constant_32 (__x);				      \
 	  else								      \
@@ -66,7 +66,7 @@ __bswap_32 (unsigned int __bsx)
 #  else
 #   define __bswap_32(x)						      \
       (__extension__							      \
-       ({ register unsigned int __v, __x = (x);				      \
+       ({ unsigned int __v, __x = (x);					      \
 	  if (__builtin_constant_p (__x))				      \
 	    __v = __bswap_constant_32 (__x);				      \
 	  else								      \
@@ -81,7 +81,7 @@ __bswap_32 (unsigned int __bsx)
 # else
 #  define __bswap_32(x) \
      (__extension__							      \
-      ({ register unsigned int __x = (x); __bswap_constant_32 (__x); }))
+      ({ unsigned int __x = (x); __bswap_constant_32 (__x); }))
 # endif
 #else
 static __inline unsigned int
@@ -113,7 +113,7 @@ __bswap_64 (__uint64_t __bsx)
 # elif __WORDSIZE == 64
 #  define __bswap_64(x) \
      (__extension__							      \
-      ({ register __uint64_t __v, __x = (x);				      \
+      ({ __uint64_t __v, __x = (x);					      \
 	 if (__builtin_constant_p (__x))				      \
 	   __v = __bswap_constant_64 (__x);				      \
 	 else								      \
diff --git a/time/test_time.c b/time/test_time.c
index 5c386525ea..361763a9a0 100644
--- a/time/test_time.c
+++ b/time/test_time.c
@@ -24,7 +24,7 @@ int
 main (int argc, char **argv)
 {
   time_t t;
-  register struct tm *tp;
+  struct tm *tp;
   struct tm tbuf;
   int lose = 0;
 
diff --git a/time/tzfile.c b/time/tzfile.c
index 2e3a7b69bf..9dd5130757 100644
--- a/time/tzfile.c
+++ b/time/tzfile.c
@@ -104,10 +104,10 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
 {
   static const char default_tzdir[] = TZDIR;
   size_t num_isstd, num_isgmt;
-  register FILE *f;
+  FILE *f;
   struct tzhead tzhead;
   size_t chars;
-  register size_t i;
+  size_t i;
   size_t total_size;
   size_t types_idx;
   size_t leaps_idx;
@@ -630,7 +630,7 @@ __tzfile_compute (time_t timer, int use_localtime,
 		  long int *leap_correct, int *leap_hit,
 		  struct tm *tp)
 {
-  register size_t i;
+  size_t i;
 
   if (use_localtime)
     {
diff --git a/time/tzset.c b/time/tzset.c
index 843f661fb8..0064cb0133 100644
--- a/time/tzset.c
+++ b/time/tzset.c
@@ -300,7 +300,7 @@ __tzset_parse_tz (tz)
   /* Figure out the standard <-> DST rules.  */
   for (unsigned int whichrule = 0; whichrule < 2; ++whichrule)
     {
-      register tz_rule *tzr = &tz_rules[whichrule];
+      tz_rule *tzr = &tz_rules[whichrule];
 
       /* Ignore comma to support string following the incorrect
 	 specification in early POSIX.1 printings.  */
@@ -400,7 +400,7 @@ tzset_internal (always, explicit)
      int explicit;
 {
   static int is_initialized;
-  register const char *tz;
+  const char *tz;
 
   if (is_initialized && !always)
     return;
@@ -471,7 +471,7 @@ compute_change (rule, year)
      tz_rule *rule;
      int year;
 {
-  register time_t t;
+  time_t t;
 
   if (year != -1 && rule->computed_for == year)
     /* Operations on times in 2 BC will be slower.  Oh well.  */
diff --git a/wcsmbs/wcscat.c b/wcsmbs/wcscat.c
index e13e9d242c..7ab7969f57 100644
--- a/wcsmbs/wcscat.c
+++ b/wcsmbs/wcscat.c
@@ -25,8 +25,8 @@ __wcscat (dest, src)
      wchar_t *dest;
      const wchar_t *src;
 {
-  register wchar_t *s1 = dest;
-  register const wchar_t *s2 = src;
+  wchar_t *s1 = dest;
+  const wchar_t *s2 = src;
   wchar_t c;
 
   /* Find the end of the string.  */
diff --git a/wcsmbs/wcschr.c b/wcsmbs/wcschr.c
index 3b5b63d82f..22872eead3 100644
--- a/wcsmbs/wcschr.c
+++ b/wcsmbs/wcschr.c
@@ -24,8 +24,8 @@
 
 wchar_t *
 wcschr (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
   do
     if (*wcs == wc)
diff --git a/wcsmbs/wcschrnul.c b/wcsmbs/wcschrnul.c
index 040aa70bc9..d6b1231113 100644
--- a/wcsmbs/wcschrnul.c
+++ b/wcsmbs/wcschrnul.c
@@ -21,8 +21,8 @@
 /* Find the first occurrence of WC in WCS.  */
 wchar_t *
 __wcschrnul (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
   while (*wcs != L'\0')
     if (*wcs == wc)
diff --git a/wcsmbs/wcscspn.c b/wcsmbs/wcscspn.c
index 281de360cd..a25da0f1e0 100644
--- a/wcsmbs/wcscspn.c
+++ b/wcsmbs/wcscspn.c
@@ -26,7 +26,7 @@ wcscspn (wcs, reject)
      const wchar_t *wcs;
      const wchar_t *reject;
 {
-  register size_t count = 0;
+  size_t count = 0;
 
   while (*wcs != L'\0')
     if (wcschr (reject, *wcs++) == NULL)
diff --git a/wcsmbs/wcspbrk.c b/wcsmbs/wcspbrk.c
index 2a417a5897..5a3438fac6 100644
--- a/wcsmbs/wcspbrk.c
+++ b/wcsmbs/wcspbrk.c
@@ -22,8 +22,8 @@
 /* Find the first occurrence in WCS of any wide-character in ACCEPT.  */
 wchar_t *
 wcspbrk (wcs, accept)
-     register const wchar_t *wcs;
-     register const wchar_t *accept;
+     const wchar_t *wcs;
+     const wchar_t *accept;
 {
   while (*wcs != L'\0')
     if (wcschr (accept, *wcs) == NULL)
diff --git a/wcsmbs/wcsrchr.c b/wcsmbs/wcsrchr.c
index 7c3bc968e7..e30b851b7e 100644
--- a/wcsmbs/wcsrchr.c
+++ b/wcsmbs/wcsrchr.c
@@ -22,8 +22,8 @@
 /* Find the last occurrence of WC in WCS.  */
 wchar_t *
 wcsrchr (wcs, wc)
-     register const wchar_t *wcs;
-     register const wchar_t wc;
+     const wchar_t *wcs;
+     const wchar_t wc;
 {
   const wchar_t *retval = NULL;
 
diff --git a/wcsmbs/wcsspn.c b/wcsmbs/wcsspn.c
index d8597c52aa..709b61b39c 100644
--- a/wcsmbs/wcsspn.c
+++ b/wcsmbs/wcsspn.c
@@ -26,9 +26,9 @@ wcsspn (wcs, accept)
      const wchar_t *wcs;
      const wchar_t *accept;
 {
-  register const wchar_t *p;
-  register const wchar_t *a;
-  register size_t count = 0;
+  const wchar_t *p;
+  const wchar_t *a;
+  size_t count = 0;
 
   for (p = wcs; *p != L'\0'; ++p)
     {
diff --git a/wcsmbs/wcsstr.c b/wcsmbs/wcsstr.c
index 7151571b25..fe984d141a 100644
--- a/wcsmbs/wcsstr.c
+++ b/wcsmbs/wcsstr.c
@@ -33,7 +33,7 @@ wcsstr (haystack, needle)
      const wchar_t *haystack;
      const wchar_t *needle;
 {
-  register wchar_t b, c;
+  wchar_t b, c;
 
   if ((b = *needle) != L'\0')
     {
@@ -50,8 +50,8 @@ wcsstr (haystack, needle)
 
       for (;;)
 	{
-	  register wchar_t a;
-	  register const wchar_t *rhaystack, *rneedle;
+	  wchar_t a;
+	  const wchar_t *rhaystack, *rneedle;
 
 	  do
 	    {
diff --git a/wcsmbs/wmemchr.c b/wcsmbs/wmemchr.c
index 63311f276c..237765a2f1 100644
--- a/wcsmbs/wmemchr.c
+++ b/wcsmbs/wmemchr.c
@@ -20,9 +20,9 @@
 
 wchar_t *
 wmemchr (s, c, n)
-     register const wchar_t *s;
-     register wchar_t c;
-     register size_t n;
+     const wchar_t *s;
+     wchar_t c;
+     size_t n;
 {
   /* For performance reasons unfold the loop four times.  */
   while (n >= 4)
diff --git a/wcsmbs/wmemcmp.c b/wcsmbs/wmemcmp.c
index bedb89335e..37b84b5f38 100644
--- a/wcsmbs/wmemcmp.c
+++ b/wcsmbs/wmemcmp.c
@@ -28,8 +28,8 @@ WMEMCMP (s1, s2, n)
      const wchar_t *s2;
      size_t n;
 {
-  register wchar_t c1;
-  register wchar_t c2;
+  wchar_t c1;
+  wchar_t c2;
 
   while (n >= 4)
     {
diff --git a/wcsmbs/wmemset.c b/wcsmbs/wmemset.c
index d5b56afa0e..fbec915e8a 100644
--- a/wcsmbs/wmemset.c
+++ b/wcsmbs/wmemset.c
@@ -25,7 +25,7 @@ wmemset (s, c, n)
      wchar_t c;
      size_t n;
 {
-  register wchar_t *wp = s;
+  wchar_t *wp = s;
 
   while (n >= 4)
     {