From 70a0694b3a218c38010fb3e35db86613d8d932c2 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Fri, 18 Jan 2008 19:11:15 +0000 Subject: [PATCH] re PR c++/33887 (Reference to bitfield gets wrong value when optimizing) PR c++/33887 * link.cc (_Jv_Linker::prepare_constant_time_tables): has_interfaces is boolean, treat it as such. From-SVN: r131632 --- libjava/ChangeLog | 6 ++++++ libjava/link.cc | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 207248ff871a..ab4058775b36 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2008-01-18 Alexandre Oliva + + PR c++/33887 + * link.cc (_Jv_Linker::prepare_constant_time_tables): + has_interfaces is boolean, treat it as such. + 2008-01-04 Andrew Haley PR libgcj/34444 diff --git a/libjava/link.cc b/libjava/link.cc index 3b4f37d1d3c4..d6fd2ddafbda 100644 --- a/libjava/link.cc +++ b/libjava/link.cc @@ -1,6 +1,7 @@ // link.cc - Code for linking and resolving classes and pool entries. -/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation +/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 + Free Software Foundation This file is part of libgcj. @@ -662,10 +663,11 @@ _Jv_Linker::prepare_constant_time_tables (jclass klass) // interfaces or primitive types. jclass klass0 = klass; - jboolean has_interfaces = 0; + jboolean has_interfaces = false; while (klass0 != &java::lang::Object::class$) { - has_interfaces += klass0->interface_count; + if (klass0->interface_count) + has_interfaces = true; klass0 = klass0->superclass; klass->depth++; }