This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]