[clang][OpaquePtr] Use proper Address constructor in AtomicInfo::getAtomicAddress()

This commit is contained in:
Arthur Eubanks
2022-02-10 18:28:45 -08:00
parent fa2d31e9e6
commit e487ddc5c6

View File

@@ -149,7 +149,16 @@ namespace {
return LVal.getExtVectorPointer();
}
Address getAtomicAddress() const {
return Address(getAtomicPointer(), getAtomicAlignment());
llvm::Type *ElTy;
if (LVal.isSimple())
ElTy = LVal.getAddress(CGF).getElementType();
else if (LVal.isBitField())
ElTy = LVal.getBitFieldAddress().getElementType();
else if (LVal.isVectorElt())
ElTy = LVal.getVectorAddress().getElementType();
else
ElTy = LVal.getExtVectorAddress().getElementType();
return Address(getAtomicPointer(), ElTy, getAtomicAlignment());
}
Address getAtomicAddressAsAtomicIntPointer() const {