From 2f87c4f1a599b5c886d60ce16fbd788c6b73ca43 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Thu, 26 Nov 2009 03:09:37 +0000 Subject: Add a CovariantThunkAdjustment struct that represents the adjustments needed for a covariant thunk. llvm-svn: 89933 --- clang/lib/CodeGen/Mangle.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'clang/lib/CodeGen/Mangle.cpp') diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index 37061f144c8..4b7ab4f20e1 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -1371,9 +1371,10 @@ void MangleContext::mangleThunk(const FunctionDecl *FD, /// \brief Mangles the a covariant thunk for the declaration D and emits that /// name to the given output stream. -void MangleContext::mangleCovariantThunk(const FunctionDecl *FD, int64_t nv_t, - int64_t v_t, int64_t nv_r, int64_t v_r, - llvm::SmallVectorImpl &Res) { +void +MangleContext::mangleCovariantThunk(const FunctionDecl *FD, + const CovariantThunkAdjustment& Adjustment, + llvm::SmallVectorImpl &Res) { // FIXME: Hum, we might have to thunk these, fix. assert(!isa(FD) && "Use mangleCXXDtor for destructor decls!"); @@ -1384,8 +1385,8 @@ void MangleContext::mangleCovariantThunk(const FunctionDecl *FD, int64_t nv_t, // # second call-offset is result adjustment CXXNameMangler Mangler(*this, Res); Mangler.getStream() << "_ZTc"; - Mangler.mangleCallOffset(ThunkAdjustment(nv_t, v_t)); - Mangler.mangleCallOffset(ThunkAdjustment(nv_r, v_r)); + Mangler.mangleCallOffset(Adjustment.ThisAdjustment); + Mangler.mangleCallOffset(Adjustment.ReturnAdjustment); Mangler.mangleFunctionEncoding(FD); } -- cgit v1.2.3