Print bfloat16 DWARF types correctly
authorLuis Machado <luis.machado@linaro.org>
Wed, 14 Apr 2021 14:20:18 +0000 (11:20 -0300)
committerLuis Machado <luis.machado@linaro.org>
Fri, 16 Apr 2021 14:14:16 +0000 (11:14 -0300)
commit1b6b755e91408011fa74f0a245369c1979586f9e
tree6e845854e05071e891c236777d37a8c8b573ea86
parent6f8f6017a0c4e22c6417c597c31b0a937d148a39
Print bfloat16 DWARF types correctly

Even if the DWARF information contains a bfloat16 base type (__bf16), a
variable of such type will still be printed using the IEEE half float format,
which is wrong.

This patch teaches GDB how to pick the bfloat16 format for __bf16 types in
DWARF (based on the base type name) and uses IEEE half float for all the other
16-bit float formats.

Tested on aarch64-linux/x86_64-linux.

OK?

gdb/ChangeLog:

2021-04-16  Luis Machado  <luis.machado@linaro.org>

* arch-utils.c (default_floatformat_for_type): Handle bfloat16.

gdb/testsuite:

2021-04-16  Luis Machado  <luis.machado@linaro.org>

* gdb.dwarf2/dw2-bfloat16.exp: New file.
gdb/ChangeLog
gdb/arch-utils.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp [new file with mode: 0644]