From 5750f56a2b5eb2354a03b55f02ed5b9edb4f4f71 Mon Sep 17 00:00:00 2001 From: Timur Iskhodzhanov Date: Fri, 7 Nov 2014 14:11:14 +0000 Subject: [PATCH] Improve comments in vtordisp tests: fix a typo, add a bit more clarity llvm-svn: 221524 --- ...oft-abi-vtables-virtual-inheritance-vtordisps.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp index f63808a..1f6d420 100644 --- a/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp +++ b/clang/test/CodeGenCXX/microsoft-abi-vtables-virtual-inheritance-vtordisps.cpp @@ -32,8 +32,8 @@ struct V4 : Z, V1, V2 { void use_somewhere_else(void*); namespace simple { -// In case of a single-layer virtual inheritance, the "this" adjustment is done -// staically: +// In case of a single-layer virtual inheritance, the "this" adjustment for a +// virtual method is done staically: // struct A { // virtual void f(); // Expects "(A*)this" in ECX // }; @@ -48,9 +48,9 @@ namespace simple { // current class layout and the most derived class layout are different. // This is done using vtordisp thunks. // -// A simple vtordisp{A,B} thunk for Method@Class is something like: -// sub ecx, [ecx+A] // apply the vtordisp adjustment -// sub ecx, B // apply the subobject adjustment, if needed. +// A simple vtordisp{x,y} thunk for Method@Class is something like: +// sub ecx, [ecx+x] // apply the vtordisp adjustment +// sub ecx, y // apply the subobject adjustment, if needed. // jmp Method@Class struct A : virtual V1 { @@ -227,12 +227,12 @@ namespace extended { // In this case, we should use the extended form of vtordisp thunks, called // vtordispex thunks. // -// vtordispex{A,B,C,D} thunk for Method@Class is something like: -// sub ecx, [ecx+C] // apply the vtordisp adjustment -// sub ecx, A // jump to the vbtable of the most derived class +// vtordispex{x,y,z,w} thunk for Method@Class is something like: +// sub ecx, [ecx+z] // apply the vtordisp adjustment +// sub ecx, x // jump to the vbptr of the most derived class // mov eax, [ecx] // load the vbtable address -// add ecx, [eax+B] // lookup the final overrider's vbase offset -// add ecx, D // apphy the subobject offset if needed +// add ecx, [eax+y] // lookup the final overrider's vbase offset +// add ecx, w // apphy the subobject offset if needed // jmp Method@Class struct A : virtual simple::A { -- 2.7.4