This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/18796] [4.0 Regression] gcj imports wrong superclass
- From: "tromey at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Dec 2004 23:25:47 -0000
- Subject: [Bug java/18796] [4.0 Regression] gcj imports wrong superclass
- References: <20041202203921.18796.ovidr@users.sourceforge.net>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From tromey at gcc dot gnu dot org 2004-12-03 23:25 -------
I've looked into this a little.
Apparently we are getting to this line in
resolve_inner_class:
local_super = do_resolve_class (NULL, local_super, NULL, NULL);
with local_super:
(gdb) pt local_super
<pointer_type 0xf6d2315c Dialog unsigned SI
size <integer_cst 0xf6ce9330 type <integer_type 0xf6cf01d0 bit_size_type>
constant invariant 32>
unit size <integer_cst 0xf6ce9150 type <integer_type 0xf6cf015c> constant
invariant 4>
align 32 symtab 0 alias set -1>
... but with the wrong `ctxp':
(gdb) p ctxp.filename
$91 = 0x8e3ab1a "./sancho/view/transfer/ClientDetailDialog.java"
Then we proceed to find "Dialog" using ClientDetailDialog's imports,
resulting in the incorrect org.eclipse.swt.widgets.Dialog
You might think we could call do_resolve_class here with "local_enclosing"
as an argument, but unfortunately it does not yet seem to have its
TYPE_IMPORT_DEMAND_LIST set yet.
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.0.0 |---
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18796