diff options
| author | Anders Carlsson <andersca@mac.com> | 2010-03-22 16:10:59 +0000 |
|---|---|---|
| committer | Anders Carlsson <andersca@mac.com> | 2010-03-22 16:10:59 +0000 |
| commit | 53a47bf9018dbd59ec8bc7a8a5dbfc83879ca306 (patch) | |
| tree | e19ab3e0fb394b605a1e08281b2d939151f585f0 /clang/lib | |
| parent | 38da2b015f36cff318d1ab2cc8d23f66b5419c65 (diff) | |
| download | bcm5719-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.cpp | 19 |
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"; } } |

