This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 4.0 RC2 Available
Geoffrey Keating writes:
> Mark Mitchell <mark@codesourcery.com> writes:
>
> > RC2 is available here:
> >
> > ftp://gcc.gnu.org/pub/gcc/prerelease-4.0.0-20050417/
> >
> > As before, I'd very much appreciate it if people would test these bits
> > on primary and secondary platforms, post test results with the
> > contrib/test_summary script, and send me a message saying whether or
> > not there are any regressions, together with a pointer to the results.
>
> Bad news, I'm afraid.
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>
* 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. */