OSDN Git Service

* cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 Jul 2000 21:04:16 +0000 (21:04 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 16 Jul 2000 21:04:16 +0000 (21:04 +0000)
* method.c (use_thunk): Correct handling of vcall offsets.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@35064 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/cp-tree.h
gcc/cp/method.c

index a87a8b7..bba76fe 100644 (file)
@@ -3101,10 +3101,10 @@ extern int flag_new_for_scope;
    `this' pointer when this function is called.  */
 #define THUNK_DELTA(DECL) (DECL_CHECK (DECL)->decl.u1.i)
 
-/* An integer indicating how many bytes should be subtracted from the
+/* A tree indicating how many bytes should be subtracted from the
    vtable for the `this' pointer to find the vcall offset.  (The vptr
    is always located at offset zero from the f `this' pointer.)  If
-   zero, then there is no vcall offset.  */
+   NULL, then there is no vcall offset.  */
 #define THUNK_VCALL_OFFSET(DECL) \
   (DECL_LANG_SPECIFIC (DECL)->decl_flags.u2.vcall_offset)
 
index f8e9bc2..0926021 100644 (file)
@@ -2267,7 +2267,7 @@ use_thunk (thunk_fndecl, emit_p)
     t = fold (build (PLUS_EXPR, TREE_TYPE (a), a, t));
     /* If there's a vcall offset, look up that value in the vtable and
        adjust the `this' pointer again.  */
-    if (!integer_zerop (vcall_offset))
+    if (vcall_offset && !integer_zerop (vcall_offset))
       {
        tree orig_this;