aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/cp-tree.h4
-rw-r--r--gcc/cp/method.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index a87a8b7..bba76fe 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -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)
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index f8e9bc2..0926021 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -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;