summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-03-22 16:10:59 +0000
committerAnders Carlsson <andersca@mac.com>2010-03-22 16:10:59 +0000
commit53a47bf9018dbd59ec8bc7a8a5dbfc83879ca306 (patch)
treee19ab3e0fb394b605a1e08281b2d939151f585f0 /clang/lib
parent38da2b015f36cff318d1ab2cc8d23f66b5419c65 (diff)
downloadbcm5719-llvm-53a47bf9018dbd59ec8bc7a8a5dbfc83879ca306.tar.gz
bcm5719-llvm-53a47bf9018dbd59ec8bc7a8a5dbfc83879ca306.zip
Improve dumping of thunks.
llvm-svn: 99181
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/CodeGen/CGVtable.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGVtable.cpp b/clang/lib/CodeGen/CGVtable.cpp
index 04326b6e7ca..2c3bd8646c0 100644
--- a/clang/lib/CodeGen/CGVtable.cpp
+++ b/clang/lib/CodeGen/CGVtable.cpp
@@ -2306,14 +2306,27 @@ void VtableBuilder::dumpLayout(llvm::raw_ostream& Out) {
Out << llvm::format("%4d | ", I);
+ // If this function pointer has a return pointer adjustment, dump it.
+ if (!Thunk.Return.isEmpty()) {
+ Out << "return adjustment: " << Thunk.This.NonVirtual;
+ Out << " non-virtual";
+ if (Thunk.Return.VBaseOffsetOffset) {
+ Out << ", " << Thunk.Return.VBaseOffsetOffset;
+ Out << " vbase offset offset";
+ }
+
+ if (!Thunk.This.isEmpty())
+ Out << "\n ";
+ }
+
// If this function pointer has a 'this' pointer adjustment, dump it.
if (!Thunk.This.isEmpty()) {
- Out << "this: ";
- Out << Thunk.This.NonVirtual << " nv";
+ Out << "this adjustment: ";
+ Out << Thunk.This.NonVirtual << " non-virtual";
if (Thunk.This.VCallOffsetOffset) {
Out << ", " << Thunk.This.VCallOffsetOffset;
- Out << " v";
+ Out << " vcall offset offset";
}
}
OpenPOWER on IntegriCloud