diff options
Diffstat (limited to 'clang/lib/CodeGen/CGNonTrivialStruct.cpp')
| -rw-r--r-- | clang/lib/CodeGen/CGNonTrivialStruct.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/clang/lib/CodeGen/CGNonTrivialStruct.cpp b/clang/lib/CodeGen/CGNonTrivialStruct.cpp index e3b0e069b830..0abf39ad1f28 100644 --- a/clang/lib/CodeGen/CGNonTrivialStruct.cpp +++ b/clang/lib/CodeGen/CGNonTrivialStruct.cpp @@ -315,8 +315,7 @@ static const CGFunctionInfo &getFunctionInfo(CodeGenModule &CGM, Ctx, nullptr, SourceLocation(), &Ctx.Idents.get(ValNameStr[I]), ParamTy, ImplicitParamDecl::Other)); - for (auto &P : Params) - Args.push_back(P); + llvm::append_range(Args, Params); return CGM.getTypes().arrangeBuiltinFunctionDeclaration(Ctx.VoidTy, Args); } @@ -326,9 +325,9 @@ static std::array<Address, N> getParamAddrs(std::index_sequence<Ints...> IntSeq, std::array<CharUnits, N> Alignments, FunctionArgList Args, CodeGenFunction *CGF) { - return std::array<Address, N>{{ - Address(CGF->Builder.CreateLoad(CGF->GetAddrOfLocalVar(Args[Ints])), - Alignments[Ints])...}}; + return std::array<Address, N>{ + {Address(CGF->Builder.CreateLoad(CGF->GetAddrOfLocalVar(Args[Ints])), + CGF->VoidPtrTy, Alignments[Ints])...}}; } // Template classes that are used as bases for classes that emit special @@ -400,8 +399,9 @@ template <class Derived> struct GenFuncBase { std::array<Address, N> NewAddrs = Addrs; for (unsigned I = 0; I < N; ++I) - NewAddrs[I] = Address( - PHIs[I], StartAddrs[I].getAlignment().alignmentAtOffset(EltSize)); + NewAddrs[I] = + Address(PHIs[I], CGF.Int8PtrTy, + StartAddrs[I].getAlignment().alignmentAtOffset(EltSize)); EltQT = IsVolatile ? EltQT.withVolatile() : EltQT; this->asDerived().visitWithKind(FK, EltQT, nullptr, CharUnits::Zero(), |
