[flang] Fix handling of elem_len in CFI_establish
The current code computes the minimum element length based on the `type` used to create the descriptor and uses that as the element length whenever it is greater than 0. This means that the `elem_len` parameter is essentially ignored for any type where we can compute a minimum element length (which includes `CFI_type_char[16|32]_t`), and we may therefore end up with descriptors with a lower element length than expected. This patch fixes the issue by explicitly doing what the standard says, i.e. it uses the given `elem_len` for character types, `CFI_type_struct` and `CFI_type_other`, and ignores it (falls back to the minimum element length) for everything else. Differential Revision: https://reviews.llvm.org/D101659
Loading
Please sign in to comment