diff options
author | Anders Carlsson <andersca@mac.com> | 2009-11-26 03:09:37 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-11-26 03:09:37 +0000 |
commit | 2f87c4f1a599b5c886d60ce16fbd788c6b73ca43 (patch) | |
tree | 5397d7b8fd833bbed83fbe4f7a876833993f6333 /clang/lib/CodeGen/Mangle.cpp | |
parent | f873c2fb68c618af8185737c92962e21a9ff903d (diff) | |
download | bcm5719-llvm-2f87c4f1a599b5c886d60ce16fbd788c6b73ca43.tar.gz bcm5719-llvm-2f87c4f1a599b5c886d60ce16fbd788c6b73ca43.zip |
Add a CovariantThunkAdjustment struct that represents the adjustments needed for a covariant thunk.
llvm-svn: 89933
Diffstat (limited to 'clang/lib/CodeGen/Mangle.cpp')
-rw-r--r-- | clang/lib/CodeGen/Mangle.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
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<char> &Res) { +void +MangleContext::mangleCovariantThunk(const FunctionDecl *FD, + const CovariantThunkAdjustment& Adjustment, + llvm::SmallVectorImpl<char> &Res) { // FIXME: Hum, we might have to thunk these, fix. assert(!isa<CXXDestructorDecl>(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); } |