re PR libgcj/23182 (instanceof sometimes fails if compiled with -findirect-dispatch)

2005-09-09  Andrew Haley  <aph@redhat.com>

        PR libgcj/23182
        * expr.c (pop_type_0): If the expected type is object or ptr
        (i.e. void*), return the type of the object we just popped from
        the stack.

From-SVN: r104098
This commit is contained in:
Andrew Haley 2005-09-09 16:04:11 +00:00 committed by Andrew Haley
parent 70e9e3d60c
commit 8f09608343
2 changed files with 12 additions and 0 deletions

View file

@ -1,3 +1,10 @@
2005-09-09 Andrew Haley <aph@redhat.com>
PR libgcj/23182
* expr.c (pop_type_0): If the expected type is object or ptr
(i.e. void*), return the type of the object we just popped from
the stack.
2005-09-06 Andrew Pinski <pinskia@physics.uc.edu>
* java-gimplify.c (java_gimplify_block): NULL out the old BLOCK's

View file

@ -350,6 +350,11 @@ pop_type_0 (tree type, char **messagep)
return t;
if (TREE_CODE (type) == POINTER_TYPE && TREE_CODE (t) == POINTER_TYPE)
{
/* If the expected type we've been passed is object or ptr
(i.e. void*), the caller needs to know the real type. */
if (type == ptr_type_node || type == object_ptr_type_node)
return t;
/* Since the verifier has already run, we know that any
types we see will be compatible. In BC mode, this fact
may be checked at runtime, but if that is so then we can