This is the mail archive of the gcc-bugs@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]

Your aliasing patch



Kenner --

  Once again, I do not believe that you ran the C++ test-suite before
checking in this change to the C++ front-end:

	(grokdeclarator): Set TREE_ADDRESSABLE for fields that aren't
	bitfields.

  Here is one failure that arises:

    FAIL: g++.brendan/static1.C .* (test for errors, line 3)
    FAIL: g++.brendan/static1.C .* (test for errors, line 4)

  The C++ front-end was depending on TREE_ADDRESSABLE being unset on
FIELD_DECLs.  See resolve_offset_ref in cp/init.c:

  if (TREE_CODE (member) == FIELD_DECL && current_class_ref == NULL_TREE)
    {
      if (TREE_ADDRESSABLE (member) == 0)
	{
	  ...
	}
      return error_mark_node;
    }

  The use of TREE_ADDRESSABLE on a FIELD_DECL is not documented in
tree.h, and you did not add any documentation to that affect.  Please
add such documentation.  In addition, I'm not sure what you're using
this bit for on a FIELD_DECL.  However, if you're going to set the bit
on all non-bitfield FIELD_DECLs, then you could just check for:

  (TREE_CODE (decl) == FIELD_DECL && TREE_ADDRESSABLE (decl))

and leave TREE_ADDRESSABLE alone.

  Most importantly, I am extremely disappointed that you apparently
did not test your change after all of our previous discussions.  You
have cost me valuable time in tracking down the reason for the test
failures.  Please fix this problem as soon as possible.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

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