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.
This commit is contained in:
Andreas Arnez 2020-07-29 19:46:44 +02:00
parent 90fd07fcd3
commit 9811697376
2 changed files with 8 additions and 1 deletions

View File

@ -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.

View File

@ -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++)