diff options
Diffstat (limited to 'clang/lib/CodeGen/CGAtomic.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGAtomic.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CGAtomic.cpp b/clang/lib/CodeGen/CGAtomic.cpp index d51c4fdb596..2de9cb26893 100644 --- a/clang/lib/CodeGen/CGAtomic.cpp +++ b/clang/lib/CodeGen/CGAtomic.cpp @@ -189,7 +189,7 @@ namespace { assert(LVal.isSimple()); llvm::Value *addr = getAtomicAddress(); if (hasPadding()) - addr = CGF.Builder.CreateStructGEP(addr, 0); + addr = CGF.Builder.CreateStructGEP(nullptr, addr, 0); return LValue::MakeAddr(addr, getValueType(), LVal.getAlignment(), CGF.getContext(), LVal.getTBAAInfo()); @@ -1060,19 +1060,20 @@ RValue AtomicInfo::convertTempToRValue(llvm::Value *addr, // Drill into the padding structure if we have one. if (hasPadding()) - addr = CGF.Builder.CreateStructGEP(addr, 0); + addr = CGF.Builder.CreateStructGEP(nullptr, addr, 0); // Otherwise, just convert the temporary to an r-value using the // normal conversion routine. return CGF.convertTempToRValue(addr, getValueType(), loc); - } else if (!AsValue) + } + if (!AsValue) // Get RValue from temp memory as atomic for non-simple lvalues return RValue::get( CGF.Builder.CreateAlignedLoad(addr, AtomicAlign.getQuantity())); - else if (LVal.isBitField()) + if (LVal.isBitField()) return CGF.EmitLoadOfBitfieldLValue(LValue::MakeBitfield( addr, LVal.getBitFieldInfo(), LVal.getType(), LVal.getAlignment())); - else if (LVal.isVectorElt()) + if (LVal.isVectorElt()) return CGF.EmitLoadOfLValue(LValue::MakeVectorElt(addr, LVal.getVectorIdx(), LVal.getType(), LVal.getAlignment()), |