gdb: change print format of flag enums with value 0
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 18 Feb 2020 22:30:51 +0000 (17:30 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Tue, 18 Feb 2020 22:33:04 +0000 (17:33 -0500)
commit373d7ac0f158764e32d621b4d311771189001f1c
treeb84c51bb2cf862f65a44d85abd3d8fe8d5f5b3cd
parentb29a2df0002f541b5408ee28f1f8e88c844d2ffc
gdb: change print format of flag enums with value 0

If a flag enum has value 0 and the enumeration type does not have an
enumerator with value 0, we currently print:

  $1 = (unknown: 0x0)

I don't like the display of "unknown" here, since for flags, 0 is a
an expected value.  It just means that no flags are set.  This patch
makes it so that we print it as a simple 0 in this situation:

  $1 = 0

If there is an enumerator with value 0, it is still printed using that
enumerator, for example (from the test):

  $1 = FE_NONE

gdb/ChangeLog:

* valprint.c (generic_val_print_enum_1): When printing a flag
enum with value 0 and there is no enumerator with value 0, print
just "0" instead of "(unknown: 0x0)".

gdb/testsuite/ChangeLog:

* gdb.base/printcmds.exp (test_print_enums): Update expected
output.
gdb/ChangeLog
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/printcmds.exp
gdb/valprint.c