aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/ELFObjectFile.cpp
diff options
context:
space:
mode:
authorPeter Klausler <pklausler@nvidia.com>2023-02-15 16:39:14 -0800
committerPeter Klausler <pklausler@nvidia.com>2023-02-16 08:30:20 -0800
commit7ed26ad10cef4d8c115a30d59352981efe7765b5 (patch)
tree80965c76008cd725fa752196930e8d40deb7611f /llvm/lib/Object/ELFObjectFile.cpp
parent1538761303ce1c06197636602644c85b8c819e04 (diff)
downloadllvm-7ed26ad10cef4d8c115a30d59352981efe7765b5.zip
llvm-7ed26ad10cef4d8c115a30d59352981efe7765b5.tar.gz
llvm-7ed26ad10cef4d8c115a30d59352981efe7765b5.tar.bz2
[flang] Always incorporate parent types' special generic bindings
The runtime type information table generator was broken when dealing with an extension derived type that didn't include a special generic procedure binding for ASSIGNMENT(=) or user-defined I/O, but one of whose ancestor types did. Ensure that the runtime derived type info tables have complete subtables for all of these special bindings, and respect any overrides that may have been defined. Motivating example: type parent contains procedure :: dtWrite => dtWrite1 generic :: write(formatted) => dtWrite end type type, extends(parent) :: extended contains procedure :: dtWrite => dtWrite2 end type The runtime derived type information table for "extended" must include a special generic procedure entry for "write(formatted)" that points to "dtWrite2" even though "extend" has no generic procedure for "write(formatted)". Differential Revision: https://reviews.llvm.org/D144148
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions