RFA: Add support for DWARF-based fixed point types

Joel Brobecker
2020-11-08T06:30:29Z

Hello,

This patch series adds support for fixed point types described
using a pure DWARF approach. While the main trigger was the desire
to deprecate the GNAT encodings used in the case of Ada fixed point
types, the implementation is done in a way that support is generic.
Other languages which have support for such kinds of types should
have little work to do to support them as well.

The implementation is based on top of GMP: We use GMP to store and
operate on rational values, with the added bonus that there is no
size limit on either the numerator nor denominator. As discussed
previously, the dependency on GMP is made mandatory
(https://sourceware.org/pipermail/gdb-patches/2018-March/147373.html).

One part that this patch series does not include is function calls
and returns. Since those changes are all arch-specific, I will
submit them in a separate series of its own, to avoid those other
patches getting lost in this patch series.

Each patch of this series has been tested on x86_64-linux using
our testsuite. In addition, these changes have been tested using
AdaCore's testing, on numerous architectures and OSes.

Looking forward to everyone's feedback!

Thank you,
--
Joel