tree becea3756e59494c50051a6cd5b03a60f2253967
parent 1e153461c66bf517097168790cdcb9418af6b623
author Abid Qadeer <haqadeer@amd.com> 1724751049 +0100
committer GitHub <noreply@github.com> 1724751049 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJmzZzJCRC1aQ7uu5UhlAAAed8QAEgyvXOSCYqoORz4x84UG2Z9
 G5S5M0DOKAn6iwFExPHl8XB3HoHeutGWyN3KoeetD1SgmhROj/MEem66Q9MPG6Rl
 SRRfn0z3JS5qXzrx/WUpexWBk2kgDT4iE7RUYK0QjKng7idSQY5pHdlgFWSIK9Bg
 e8BDTVHjucn3xVAh09ZWv5BNn/5WoPuzvf/gvfb4+BtfrCfZQZHA0oJmhJxYGTci
 GYIuvnkEZN6UxPvALfaswjBYbU2WNLvq0vv/rw3YMBLXMMfA8p6qWvLXYD7aaSIA
 Nq1vso3gB/vzXHPXLy22hjQ1HMIQ04CbEnsan9rK914w+HevaOVXhhhYQFm//9DV
 UBVJ40snIXpb20VkR8A8wbH+3mMjMmk7Q6witZb190dIhmwm5xN0Qn5pvt9tvkhJ
 Uu5qbYmROMwsn/aCOD1pdOnQtE174BFzpG38Ir6/Etwqmh1ZCYQMitpO4QjW1MCl
 0aVNFD+VeIaqO8JVtL/sbY2l+DoXjHATz8SH0w29fJEW4SUD+iNBiU++wx9ePkrx
 UJPXByU0jAg0SXiRiQ6yW/Jw6GatBx98xdLFat3yDnHiooXrF0zDIedbnZZVeeXX
 ftOTKMKfo0jv4mHA7GWtfIdZfqL1ymh3Hw1opLBlaPJL6Lo5Y9kGz9o4zzrfLWNv
 X46QrJGSStwUOtrpRH0Y
 =3amr
 -----END PGP SIGNATURE-----
 

[flang][debug] Support derived types. (#99476)

This PR adds initial debug support for derived type. It handles
`RecordType` and generates appropriate `DICompositeTypeAttr`. The
`TypeInfoOp` is used to get information about the parent and location of
the derived type.

We use `getTypeSizeAndAlignment` to get the size and alignment of the
components of the derived types. This function needed a few changes to
be suitable to be used here:

1. The `getTypeSizeAndAlignment` errored out on unsupported type which
would not work with incremental way we are building debug support. A new
variant of this function has been that returns an std::optional. The original
function has been renamed to `getTypeSizeAndAlignmentOrCrash` as it
will call `TODO()` for unsupported types.

2. The Character type was returning size of just element and not the
whole string which has been fixed.

The testcase checks for offsets of the components which had to be
hardcoded in the test. So the testcase is currently enabled on x86_64.

With this PR in place, this is how the debugging of derived types look
like:

```
type :: t_date
    integer :: year, month, day
  end type

  type :: t_address
    integer :: house_number
  end type
  type, extends(t_address) :: t_person
    character(len=20) name
  end type
  type, extends(t_person)  :: t_employee
    type(t_date) :: hired_date
    real :: monthly_salary
  end type
  type(t_employee) :: employee

(gdb) p employee
$1 = ( t_person = ( t_address = ( house_number = 1 ), name = 'John', ' ' <repeats 16 times> ), hired_date = ( year = 2020, month = 1, day = 20 ), monthly_salary = 3.1400001 )
```