With pointee types going away in llvm::PointerType, the frontend needs
to keep track of pointee types.
Add a PointeeType to Address and LValue.
Paths
| Differential D103465
[OpaquePtr] Track pointee types in Clang AbandonedPublic Authored by aeubanks on Jun 1 2021, 9:04 AM.
Details
Diff Detail
Unit TestsFailed Event TimelineComment Actions This is definitely WIP, but I'd like to make sure that this is the right direction before continuing. And are there any other obvious places that also require this? Comment Actions The changes look like the right direction to me - though I don't know/couldn't confirm whether more changes will be needed in other places.
Comment Actions Maybe send a mail to cfe-dev to solicit some help with the opaque pointer migration on the clang side?
craig.topper added inline comments. erichkeane added inline comments.
jyknight added inline comments.
nikic mentioned this in rGabbc2e997bbf: [CodeGen] Store ElementType in Address.Dec 15 2021, 12:03 AM
Revision Contents
Diff 348987 clang/lib/CodeGen/Address.h
clang/lib/CodeGen/CGBlocks.cpp
clang/lib/CodeGen/CGExpr.cpp
clang/lib/CodeGen/CGValue.h
|
I think this will still end up being a problem when we try to look into the type for multi-dimension pointers. Should we have this just store the QualType of the value instead, so we can unpack it later? If we ever needed the llvm::Type of the Pointee, a convertTypeForMem is all that is standing in our way.