diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2020-01-24 22:00:03 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2020-01-24 22:00:03 +0000 | 
| commit | 480093f4440d54b30b3025afeac24b48f2ba7a2e (patch) | |
| tree | 162e72994062888647caf0d875428db9445491a8 /contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp | |
| parent | 489b1cf2ecf5b9b4a394857987014bfb09067726 (diff) | |
| parent | 706b4fc47bbc608932d3b491ae19a3b9cde9497b (diff) | |
Notes
Diffstat (limited to 'contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp')
| -rw-r--r-- | contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp b/contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp index 05615aa12881..d5f378c52232 100644 --- a/contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp +++ b/contrib/llvm-project/clang/lib/CodeGen/CGNonTrivialStruct.cpp @@ -707,7 +707,7 @@ struct GenMoveConstructor : GenBinaryFunc<GenMoveConstructor, true> {      LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT);      llvm::Value *SrcVal =          CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); -    CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress()), SrcLV); +    CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress(*CGF)), SrcLV);      CGF->EmitStoreOfScalar(SrcVal, CGF->MakeAddrLValue(Addrs[DstIdx], QT),                             /* isInitialization */ true);    } @@ -770,7 +770,7 @@ struct GenMoveAssignment : GenBinaryFunc<GenMoveAssignment, true> {      LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT);      llvm::Value *SrcVal =          CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); -    CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress()), SrcLV); +    CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress(*CGF)), SrcLV);      LValue DstLV = CGF->MakeAddrLValue(Addrs[DstIdx], QT);      llvm::Value *DstVal =          CGF->EmitLoadOfLValue(DstLV, SourceLocation()).getScalarVal(); @@ -806,7 +806,8 @@ void CodeGenFunction::destroyNonTrivialCStruct(CodeGenFunction &CGF,  // such structure.  void CodeGenFunction::defaultInitNonTrivialCStructVar(LValue Dst) {    GenDefaultInitialize Gen(getContext()); -  Address DstPtr = Builder.CreateBitCast(Dst.getAddress(), CGM.Int8PtrPtrTy); +  Address DstPtr = +      Builder.CreateBitCast(Dst.getAddress(*this), CGM.Int8PtrPtrTy);    Gen.setCGF(this);    QualType QT = Dst.getType();    QT = Dst.isVolatile() ? QT.withVolatile() : QT; @@ -817,6 +818,7 @@ template <class G, size_t N>  static void callSpecialFunction(G &&Gen, StringRef FuncName, QualType QT,                                  bool IsVolatile, CodeGenFunction &CGF,                                  std::array<Address, N> Addrs) { +  auto SetArtificialLoc = ApplyDebugLocation::CreateArtificial(CGF);    for (unsigned I = 0; I < N; ++I)      Addrs[I] = CGF.Builder.CreateBitCast(Addrs[I], CGF.CGM.Int8PtrPtrTy);    QT = IsVolatile ? QT.withVolatile() : QT; @@ -849,7 +851,7 @@ getSpecialFunction(G &&Gen, StringRef FuncName, QualType QT, bool IsVolatile,  // Functions to emit calls to the special functions of a non-trivial C struct.  void CodeGenFunction::callCStructDefaultConstructor(LValue Dst) {    bool IsVolatile = Dst.isVolatile(); -  Address DstPtr = Dst.getAddress(); +  Address DstPtr = Dst.getAddress(*this);    QualType QT = Dst.getType();    GenDefaultInitializeFuncName GenName(DstPtr.getAlignment(), getContext());    std::string FuncName = GenName.getName(QT, IsVolatile); @@ -873,7 +875,7 @@ std::string CodeGenFunction::getNonTrivialDestructorStr(QualType QT,  void CodeGenFunction::callCStructDestructor(LValue Dst) {    bool IsVolatile = Dst.isVolatile(); -  Address DstPtr = Dst.getAddress(); +  Address DstPtr = Dst.getAddress(*this);    QualType QT = Dst.getType();    GenDestructorFuncName GenName("__destructor_", DstPtr.getAlignment(),                                  getContext()); @@ -884,7 +886,7 @@ void CodeGenFunction::callCStructDestructor(LValue Dst) {  void CodeGenFunction::callCStructCopyConstructor(LValue Dst, LValue Src) {    bool IsVolatile = Dst.isVolatile() || Src.isVolatile(); -  Address DstPtr = Dst.getAddress(), SrcPtr = Src.getAddress(); +  Address DstPtr = Dst.getAddress(*this), SrcPtr = Src.getAddress(*this);    QualType QT = Dst.getType();    GenBinaryFuncName<false> GenName("__copy_constructor_", DstPtr.getAlignment(),                                     SrcPtr.getAlignment(), getContext()); @@ -898,7 +900,7 @@ void CodeGenFunction::callCStructCopyAssignmentOperator(LValue Dst, LValue Src  ) {    bool IsVolatile = Dst.isVolatile() || Src.isVolatile(); -  Address DstPtr = Dst.getAddress(), SrcPtr = Src.getAddress(); +  Address DstPtr = Dst.getAddress(*this), SrcPtr = Src.getAddress(*this);    QualType QT = Dst.getType();    GenBinaryFuncName<false> GenName("__copy_assignment_", DstPtr.getAlignment(),                                     SrcPtr.getAlignment(), getContext()); @@ -909,7 +911,7 @@ void CodeGenFunction::callCStructCopyAssignmentOperator(LValue Dst, LValue Src  void CodeGenFunction::callCStructMoveConstructor(LValue Dst, LValue Src) {    bool IsVolatile = Dst.isVolatile() || Src.isVolatile(); -  Address DstPtr = Dst.getAddress(), SrcPtr = Src.getAddress(); +  Address DstPtr = Dst.getAddress(*this), SrcPtr = Src.getAddress(*this);    QualType QT = Dst.getType();    GenBinaryFuncName<true> GenName("__move_constructor_", DstPtr.getAlignment(),                                    SrcPtr.getAlignment(), getContext()); @@ -923,7 +925,7 @@ void CodeGenFunction::callCStructMoveAssignmentOperator(LValue Dst, LValue Src  ) {    bool IsVolatile = Dst.isVolatile() || Src.isVolatile(); -  Address DstPtr = Dst.getAddress(), SrcPtr = Src.getAddress(); +  Address DstPtr = Dst.getAddress(*this), SrcPtr = Src.getAddress(*this);    QualType QT = Dst.getType();    GenBinaryFuncName<true> GenName("__move_assignment_", DstPtr.getAlignment(),                                    SrcPtr.getAlignment(), getContext());  | 
