diff options
author | jeanPerier <jperier@nvidia.com> | 2023-10-06 09:20:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-06 09:20:13 +0200 |
commit | e91a4bec0b3dd5d7c5d745fe1c7791fdc008e07a (patch) | |
tree | be8214b2a4ba2510e448a0da3831fefd75a69e26 /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | ff5e2babcb46e7eb3887ee265decb2948da2792c (diff) | |
download | llvm-e91a4bec0b3dd5d7c5d745fe1c7791fdc008e07a.zip llvm-e91a4bec0b3dd5d7c5d745fe1c7791fdc008e07a.tar.gz llvm-e91a4bec0b3dd5d7c5d745fe1c7791fdc008e07a.tar.bz2 |
[flang][hlfir] Fix c_null_ptr lowering in structure constructors (#68321)
Lowering handles C_PTR initial values that are designators or NULL()
inside structure constructors as an extension to support. This extension
is used by initial values generated for runtime derived type info.
But c_null_ptr wrongly fell into this extension path with HLFIR, causing
the initial value to be set to some (non null) address containing
c_null_ptr instead of c_null_ptr itself...
This was caused by the FIR lowering relying on genExtAddrInInitializer
to not place c_null_ptr inside an address. Fix this by only falling
through into the extension handling code if this is an extension: i.e,
the expression is some designated symbol or NULL().
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
0 files changed, 0 insertions, 0 deletions