This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PR 21022: ICE while compiling GdkFontMetrics.class with stabs debugging
- From: Andrew Haley <aph at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 19 Apr 2005 14:44:55 +0100
- Subject: PR 21022: ICE while compiling GdkFontMetrics.class with stabs debugging
It's a bug in dbxout. A field is marked as DECL_IGNORED_P, but
dbxout_type_fields() still tries to access it.
Andrew.
2005-04-19 Andrew Haley <aph@redhat.com>
PR java/21022
* dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
looking at a field's bitpos.
Index: dbxout.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/dbxout.c,v
retrieving revision 1.227
diff -c -6 -p -r1.227 dbxout.c
*** dbxout.c 12 Apr 2005 20:39:04 -0000 1.227
--- dbxout.c 19 Apr 2005 13:17:51 -0000
*************** dbxout_type_fields (tree type)
*** 1401,1420 ****
return early. */
if (tem == error_mark_node || TREE_TYPE (tem) == error_mark_node)
return;
/* Omit here local type decls until we know how to support them. */
if (TREE_CODE (tem) == TYPE_DECL
/* Omit fields whose position or size are variable or too large to
represent. */
|| (TREE_CODE (tem) == FIELD_DECL
&& (! host_integerp (bit_position (tem), 0)
|| ! DECL_SIZE (tem)
! || ! host_integerp (DECL_SIZE (tem), 1)))
! /* Omit here the nameless fields that are used to skip bits. */
! || DECL_IGNORED_P (tem))
continue;
else if (TREE_CODE (tem) != CONST_DECL)
{
/* Continue the line if necessary,
but not before the first field. */
--- 1401,1420 ----
return early. */
if (tem == error_mark_node || TREE_TYPE (tem) == error_mark_node)
return;
/* Omit here local type decls until we know how to support them. */
if (TREE_CODE (tem) == TYPE_DECL
+ /* Omit here the nameless fields that are used to skip bits. */
+ || DECL_IGNORED_P (tem)
/* Omit fields whose position or size are variable or too large to
represent. */
|| (TREE_CODE (tem) == FIELD_DECL
&& (! host_integerp (bit_position (tem), 0)
|| ! DECL_SIZE (tem)
! || ! host_integerp (DECL_SIZE (tem), 1))))
continue;
else if (TREE_CODE (tem) != CONST_DECL)
{
/* Continue the line if necessary,
but not before the first field. */