about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2019-02-12 10:30:34 +0000
committerJoseph Myers <joseph@codesourcery.com>2019-02-12 10:30:34 +0000
commit32db86d558193ad4ad5a00926ce3c350c89eb8df (patch)
tree477020d5e3e691134fd40d992bbf66eaa7e18347 /elf
parenta51bc4fe9da9f2b97877beb6692f7043f6c14a16 (diff)
downloadglibc-32db86d558193ad4ad5a00926ce3c350c89eb8df.tar.gz
glibc-32db86d558193ad4ad5a00926ce3c350c89eb8df.tar.xz
glibc-32db86d558193ad4ad5a00926ce3c350c89eb8df.zip
Add fall-through comments.
This patch adds fall-through comments in some cases where -Wextra
produces implicit-fallthrough warnings.

The patch is non-exhaustive.  Apart from architecture-specific code
for non-x86_64 architectures, it does not change sunrpc/xdr.c (legacy
code, probably should have such changes, but left to be dealt with
separately), or places that already had comments about the
fall-through but not matching the form expected by
-Wimplicit-fallthrough=3 (the default level with -Wextra; my
inclination is to adjust those comments to match rather than
downgrading to -Wimplicit-fallthrough=1 to allow any comment), or one
place where I thought the implicit fallthrough was not correct and so
should be handled separately as a bug fix.  I think the key thing to
consider in review of this patch is whether the fall-through is indeed
intended and correct in each place where such a comment is added.

Tested for x86_64.

	* elf/dl-exception.c (_dl_exception_create_format): Add
	fall-through comments.
	* elf/ldconfig.c (parse_conf_include): Likewise.
	* elf/rtld.c (print_statistics): Likewise.
	* locale/programs/charmap.c (parse_charmap): Likewise.
	* misc/mntent_r.c (__getmntent_r): Likewise.
	* posix/wordexp.c (parse_arith): Likewise.
	(parse_backtick): Likewise.
	* resolv/ns_ttl.c (ns_parse_ttl): Likewise.
	* sysdeps/x86/cpu-features.c (init_cpu_features): Likewise.
	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-exception.c1
-rw-r--r--elf/ldconfig.c1
-rw-r--r--elf/rtld.c4
3 files changed, 6 insertions, 0 deletions
diff --git a/elf/dl-exception.c b/elf/dl-exception.c
index f97d179dd1..7ee19a7fc8 100644
--- a/elf/dl-exception.c
+++ b/elf/dl-exception.c
@@ -123,6 +123,7 @@ _dl_exception_create_format (struct dl_exception *exception, const char *objname
 		  ++p;
 		  break;
 		}
+	      /* Fall through.  */
 	    case 'x':
 	      length += INT_WIDTH / 4;
 	      break;
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 206cd51df6..3bc9e61891 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -1228,6 +1228,7 @@ parse_conf_include (const char *config_file, unsigned int lineno,
 
     case GLOB_NOSPACE:
       errno = ENOMEM;
+      /* Fall through.  */
     case GLOB_ABORTED:
       if (opt_verbose)
 	error (0, errno, _("%s:%u: cannot read directory %s"),
diff --git a/elf/rtld.c b/elf/rtld.c
index 5a90e78ed6..44361ba605 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -2738,8 +2738,10 @@ print_statistics (hp_timing_t *rtld_total_timep)
 	{
 	case 3:
 	  *wp++ = *cp++;
+	  /* Fall through.  */
 	case 2:
 	  *wp++ = *cp++;
+	  /* Fall through.  */
 	case 1:
 	  *wp++ = '.';
 	  *wp++ = *cp++;
@@ -2801,8 +2803,10 @@ print_statistics (hp_timing_t *rtld_total_timep)
 	{
 	case 3:
 	  *wp++ = *cp++;
+	  /* Fall through.  */
 	case 2:
 	  *wp++ = *cp++;
+	  /* Fall through.  */
 	case 1:
 	  *wp++ = '.';
 	  *wp++ = *cp++;