summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/Mangle.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-11-26 03:09:37 +0000
committerAnders Carlsson <andersca@mac.com>2009-11-26 03:09:37 +0000
commit2f87c4f1a599b5c886d60ce16fbd788c6b73ca43 (patch)
tree5397d7b8fd833bbed83fbe4f7a876833993f6333 /clang/lib/CodeGen/Mangle.cpp
parentf873c2fb68c618af8185737c92962e21a9ff903d (diff)
downloadbcm5719-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.cpp11
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);
}
OpenPOWER on IntegriCloud