aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2003-01-22 20:53:54 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-01-22 20:53:54 +0000
commit906c7c32658621d4d530e61d8ecc1dd081ef732c (patch)
tree248e3b9f3c1ecd6b696b4ed1a06894a6a1561839 /gcc/java
parent3e895978eef47edaf67b59f02d9f847c55ac26dc (diff)
downloadgcc-906c7c32658621d4d530e61d8ecc1dd081ef732c.zip
gcc-906c7c32658621d4d530e61d8ecc1dd081ef732c.tar.gz
gcc-906c7c32658621d4d530e61d8ecc1dd081ef732c.tar.bz2
expr.c (build_invokeinterface): Abort if method's context is not an interface.
* expr.c (build_invokeinterface): Abort if method's context is not an interface. From-SVN: r61615
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/ChangeLog5
-rw-r--r--gcc/java/expr.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index bdb9917..5d42c0a 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 e5c677c..bf1f41b 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)