Fix Ada value printing on PPC64
authorTom Tromey <tromey@adacore.com>
Mon, 11 May 2020 20:57:49 +0000 (14:57 -0600)
committerTom Tromey <tromey@adacore.com>
Mon, 11 May 2020 20:57:49 +0000 (14:57 -0600)
commit5eb68a39a2c2908fc01f03e79daed72ba85dc14c
treecc5b9cd67270ab9bf1e49373fecd518ee2adbdd0
parente000211765b57e0a1835f2ecea250dd51878fa5f
Fix Ada value printing on PPC64

The val_print removal patches introduced an Ada regression on PPC64
(probably any big-endian system).

The issue comes because value_field does not understand that Ada
wrapper fields can be bitfields that wrap a non-scalar type.  In this
case the value is already left-justified, so the justification done
there does the wrong thing.

Perhaps it would be good, eventually, to change value_field to
understand this case.  In the meantime this implements an Ada-specific
solution.

gdb/ChangeLog
2020-05-11  Tom Tromey  <tromey@adacore.com>

* ada-lang.c (ada_value_primitive_field): Now public.
* ada-lang.h (ada_value_primitive_field): Declare.
* ada-valprint.c (print_field_values): Use
ada_value_primitive_field for wrapper fields.
gdb/ChangeLog
gdb/ada-lang.c
gdb/ada-lang.h
gdb/ada-valprint.c