From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14140 invoked by alias); 6 Jan 2005 02:19:34 -0000 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org Received: (qmail 14126 invoked by uid 48); 6 Jan 2005 02:19:33 -0000 Date: Thu, 06 Jan 2005 02:19:00 -0000 From: "mckinlay at redhat dot com" To: java-prs@gcc.gnu.org Message-ID: <20050106021930.19285.mckinlay@redhat.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug java/19285] New: Interfaces not initialized by static field access X-Bugzilla-Reason: CC X-SW-Source: 2005-q1/txt/msg00018.txt.bz2 List-Id: Consider the following test case: public class Test implements RuntimeConstants { public static void main(String[] args) { System.out.println(foo[0]); } } interface RuntimeConstants { static int foo[] = {1}; } Older bytecode compilers would implement the access to "foo" like so: 3: getstatic However, presumably for reasons of binary compatibility, bytecode produced by some modern Java compilers (javac 1.5.0 with "-target" >= 1.3) does the following: 3: getstatic When "foo" is actually in an interface, there is a problem for GCJ because we have no way to ensure that the interface gets initialized when it is accessed. Initialization of a class does not itself cause initialization of its superinterfaces. -- Summary: Interfaces not initialized by static field access Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mckinlay at redhat dot com CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19285