[clang] [ClangFE] Improve handling of casting of atomic memory operations. (PR #86691)
Matt Arsenault via cfe-commits
cfe-commits at lists.llvm.org
Fri Mar 29 06:43:01 PDT 2024
================
@@ -1414,13 +1425,11 @@ RValue AtomicInfo::ConvertToValueOrAtomic(llvm::Value *Val,
auto *ValTy = AsValue
? CGF.ConvertTypeForMem(ValueTy)
: getAtomicAddress().getElementType();
- if (ValTy->isIntegerTy() || (!CastFP && ValTy->isIEEELikeFPTy())) {
+ if (!shouldCastToInt(ValTy, CmpXchg)) {
assert((!ValTy->isIntegerTy() || Val->getType() == ValTy) &&
"Different integer types.");
return RValue::get(CGF.EmitFromMemory(Val, ValueTy));
- } else if (ValTy->isPointerTy())
- return RValue::get(CGF.Builder.CreateIntToPtr(Val, ValTy));
- else if (llvm::CastInst::isBitCastable(Val->getType(), ValTy))
+ } else if (llvm::CastInst::isBitCastable(Val->getType(), ValTy))
----------------
arsenm wrote:
No else after return (but this was wrong before)
https://github.com/llvm/llvm-project/pull/86691
More information about the cfe-commits
mailing list