summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp')
-rw-r--r--gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp b/gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
index 692a455eafc..d6bc16b6350 100644
--- a/gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
+++ b/gnu/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp
@@ -101,15 +101,17 @@ protected:
public:
ItaniumCXXABI(ASTContext &Ctx) : Context(Ctx) { }
- std::pair<uint64_t, unsigned>
- getMemberPointerWidthAndAlign(const MemberPointerType *MPT) const override {
+ MemberPointerInfo
+ getMemberPointerInfo(const MemberPointerType *MPT) const override {
const TargetInfo &Target = Context.getTargetInfo();
TargetInfo::IntType PtrDiff = Target.getPtrDiffType(0);
- uint64_t Width = Target.getTypeWidth(PtrDiff);
- unsigned Align = Target.getTypeAlign(PtrDiff);
+ MemberPointerInfo MPI;
+ MPI.Width = Target.getTypeWidth(PtrDiff);
+ MPI.Align = Target.getTypeAlign(PtrDiff);
+ MPI.HasPadding = false;
if (MPT->isMemberFunctionPointer())
- Width = 2 * Width;
- return std::make_pair(Width, Align);
+ MPI.Width *= 2;
+ return MPI;
}
CallingConv getDefaultMethodCallConv(bool isVariadic) const override {