[Bug java/12734] New: gcj verifier doesn't merge interface types correctly

tromey at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Oct 22 20:40:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12734

           Summary: gcj verifier doesn't merge interface types correctly
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tromey at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org

The gcj verifier currently incorrectly handles interface
type merges.  It always yields Object.

In my particular case, when compiling an eclipse .jar,
I get this error:

org/eclipse/pde/internal/ui/preferences/ExternalPluginsBlock.java: In method
`org.eclipse.pde.internal.ui.preferences.ExternalPluginsBlock.computeDelta()':
org/eclipse/pde/internal/ui/preferences/ExternalPluginsBlock.java:174: error:
verification error at PC=103
org/eclipse/pde/internal/ui/preferences/ExternalPluginsBlock.java:174: error:
invalid argument type
org/eclipse/pde/internal/ui/preferences/ExternalPluginsBlock.java:174: error:
expected type 'org.eclipse.pde.core.IModel[]' but stack contains
'java.lang.Object[]'


In this case, we've merged two different array types to
Object[], which isn't compatible with the actual type of the
method's argument.  However, both these array types are
actually convertible to IModel[].



More information about the Gcc-bugs mailing list