diff options
author | Anastasia Stulova <anastasia.stulova@arm.com> | 2019-03-07 16:23:15 +0000 |
---|---|---|
committer | Anastasia Stulova <anastasia.stulova@arm.com> | 2019-03-07 16:23:15 +0000 |
commit | 94049554166ce3243f19c59240074d0000151e38 (patch) | |
tree | 3699c1b1a7d875f908b077b447e90b5159051049 /clang/lib/CodeGen/CGClass.cpp | |
parent | eb39991c8b4071211b1f408283bf331a69dacec0 (diff) | |
download | bcm5719-llvm-94049554166ce3243f19c59240074d0000151e38.tar.gz bcm5719-llvm-94049554166ce3243f19c59240074d0000151e38.zip |
[PR40778] Preserve addr space in Derived to Base cast.
The address space for the Base class pointer when up-casting
from Derived should be taken from the Derived class pointer.
Differential Revision: https://reviews.llvm.org/D53818
llvm-svn: 355606
Diffstat (limited to 'clang/lib/CodeGen/CGClass.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGClass.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp index f45b2809855..597d0e9c689 100644 --- a/clang/lib/CodeGen/CGClass.cpp +++ b/clang/lib/CodeGen/CGClass.cpp @@ -302,7 +302,8 @@ Address CodeGenFunction::GetAddressOfBaseClass( // Get the base pointer type. llvm::Type *BasePtrTy = - ConvertType((PathEnd[-1])->getType())->getPointerTo(); + ConvertType((PathEnd[-1])->getType()) + ->getPointerTo(Value.getType()->getPointerAddressSpace()); QualType DerivedTy = getContext().getRecordType(Derived); CharUnits DerivedAlign = CGM.getClassPointerAlignment(Derived); |