diff options
| author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-22 20:53:54 +0000 |
|---|---|---|
| committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-22 20:53:54 +0000 |
| commit | 28cacd2dfa89f2d82bd7051baa0030668a97c05c (patch) | |
| tree | 248e3b9f3c1ecd6b696b4ed1a06894a6a1561839 /gcc | |
| parent | caa8fa373e7ffb8f83d65cede231ca2a28818d2d (diff) | |
| download | ppe42-gcc-28cacd2dfa89f2d82bd7051baa0030668a97c05c.tar.gz ppe42-gcc-28cacd2dfa89f2d82bd7051baa0030668a97c05c.zip | |
* expr.c (build_invokeinterface): Abort if method's context is not
an interface.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61615 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/java/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/java/expr.c | 9 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index bdb9917d6cb..5d42c0a7dc7 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,5 +1,10 @@ 2003-01-22 Tom Tromey <tromey@redhat.com> + * expr.c (build_invokeinterface): Abort if method's context is not + an interface. + +2003-01-22 Tom Tromey <tromey@redhat.com> + * gcj.texi (Input and output files): Mention non-class entries. * decl.c (java_init_decl_processing): Call init_resource_processing. diff --git a/gcc/java/expr.c b/gcc/java/expr.c index e5c677c2c11..bf1f41b5414 100644 --- a/gcc/java/expr.c +++ b/gcc/java/expr.c @@ -1901,15 +1901,16 @@ build_invokeinterface (tree dtable, tree method) abstract nor static. */ if (class_ident == NULL_TREE) - { - class_ident = get_identifier ("class"); - } + class_ident = get_identifier ("class"); - dtable = build_java_indirect_ref (dtable_type, dtable, flag_check_references); + dtable = build_java_indirect_ref (dtable_type, dtable, + flag_check_references); dtable = build (COMPONENT_REF, class_ptr_type, dtable, lookup_field (&dtable_type, class_ident)); interface = DECL_CONTEXT (method); + if (! CLASS_INTERFACE (TYPE_NAME (interface))) + abort (); layout_class_methods (interface); if (flag_indirect_dispatch) |

