Geoffrey Keating writes:
 > Mark Mitchell <[EMAIL PROTECTED]> 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  <[EMAIL PROTECTED]>

        * 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.  */

Reply via email to