This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Your aliasing patch
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Subject: Your aliasing patch
- From: Mark Mitchell <mark at codesourcery dot com>
- Date: Wed, 31 May 2000 13:41:17 -0700
- Cc: gcc-bugs at gcc dot gnu dot org
- Reply-to: mark at codesourcery dot com
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