BFD: Fix double BFD_FAIL calls in `bfd_default_reloc_type_lookup'
authorMaciej W. Rozycki <macro@imgtec.com>
Mon, 31 Oct 2016 16:14:35 +0000 (16:14 +0000)
committerMaciej W. Rozycki <macro@imgtec.com>
Tue, 1 Nov 2016 22:57:56 +0000 (22:57 +0000)
Break out of the outer switch statement once the inner switch for the
BFD_RELOC_CTOR relocation has been processed, preventing double BFD_FAIL
calls from being made, once from the inner switch and then again from
the default case of the outer switch.

Noticed with a `-Wimplicit-fallthrough' build error reported by a recent
GCC version:

In file included from .../bfd/reloc.c:52:0:
.../bfd/reloc.c: In function 'bfd_default_reloc_type_lookup':
.../bfd/libbfd.h:779:8: error: this statement may fall through [-Werror=implicit-fallthrough=]
   do { bfd_assert(__FILE__,__LINE__); } while (0)
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.../bfd/reloc.c:7780:4: note: in expansion of macro 'BFD_FAIL'
    BFD_FAIL ();
    ^~~~~~~~
.../bfd/reloc.c:7782:5: note: here
     default:
     ^~~~~~~
cc1: all warnings being treated as errors
make[4]: *** [reloc.lo] Error 1

bfd/
* reloc.c (bfd_default_reloc_type_lookup) <BFD_RELOC_CTOR>: Do
not fall through to the default case.

bfd/ChangeLog
bfd/reloc.c

index 75ffab57f8aa75489f93874117f858bb6e1898a7..49d490dcc4ca6d461b8238b8e05c2354f542be23 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-01  Maciej W. Rozycki  <macro@imgtec.com>
+
+       * reloc.c (bfd_default_reloc_type_lookup) <BFD_RELOC_CTOR>: Do
+       not fall through to the default case.
+
 2016-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
            Andrew Waterman <andrew@sifive.com>
 
index 7c67eebacb035c56a73992124c53fde56fb43db8..56cd79b6254037fac89e31b4cf88696f2900d616 100644 (file)
@@ -7859,6 +7859,7 @@ bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
        default:
          BFD_FAIL ();
        }
+      break;
     default:
       BFD_FAIL ();
     }