diff options
author | Andreas Arnez <arnez@linux.ibm.com> | 2020-07-29 19:46:44 +0200 |
---|---|---|
committer | Andreas Arnez <arnez@linux.ibm.com> | 2020-07-29 19:46:44 +0200 |
commit | 9811697376b3f1950419ab13b19e2995703b839b (patch) | |
tree | a7b1a220104d285867830af766018a70828700b8 /opcodes | |
parent | 90fd07fcd3e6af8679df55b67482d5c8ab8dd9b9 (diff) | |
download | binutils-9811697376b3f1950419ab13b19e2995703b839b.zip binutils-9811697376b3f1950419ab13b19e2995703b839b.tar.gz binutils-9811697376b3f1950419ab13b19e2995703b839b.tar.bz2 |
PR26279 Work around maybe-uninitialized warning in s390-mkopc.c
In s390-mkopc.c, the function insertExpandedMnemonic() searches for the
first occurrence of '*' or '$' in the given mnemonic, and, if a match is
found, chooses an extension table using a switch() on that character. The
switch statement contains a default case that prints an error message and
does not set the extension table. Although this case cannot occur, some
GCC versions obviously conclude that the extension table might have been
left uninitialized after the switch statement and consequently emit
maybe-uninitialized warnings for the variables 'ext_table' and
'ext_table_length'.
Circumvent the warning by handling the unreachable default case with
abort().
opcodes/
* s390-mkopc.c (insertExpandedMnemonic): Handle unreachable
default case with abort() instead of printing an error message and
continuing, to avoid a maybe-uninitialized warning.
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 6 | ||||
-rw-r--r-- | opcodes/s390-mkopc.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 522d81b..4f56e13 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2020-07-29 Andreas Arnez <arnez@linux.ibm.com> + + * s390-mkopc.c (insertExpandedMnemonic): Handle unreachable + default case with abort() instead of printing an error message and + continuing, to avoid a maybe-uninitialized warning. + 2020-07-24 Nick Clifton <nickc@redhat.com> * po/de.po: Updated German translation. diff --git a/opcodes/s390-mkopc.c b/opcodes/s390-mkopc.c index c593fb6..b6c49e6 100644 --- a/opcodes/s390-mkopc.c +++ b/opcodes/s390-mkopc.c @@ -240,7 +240,8 @@ insertExpandedMnemonic (char *opcode, char *mnemonic, char *format, ext_table = s390_crb_extensions; ext_table_length = NUM_CRB_EXTENSIONS; break; - default: fprintf (stderr, "Unknown tag char: %c\n", *tag); + default: + abort (); /* Should be unreachable. */ } for (i = 0; i < ext_table_length; i++) |