This is the mail archive of the gcc-patches@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] |
On Fri, Apr 24, 2009 at 02:51:38PM -0700, Ian Lance Taylor wrote: > Jakub Jelinek <jakub@redhat.com> writes: > > > One of the changes needed is to honor DECL_BY_REFERENCE even for VAR_DECLs > > (those which tree-nested.c creates as replacement for > > PARM_DECLs/RESULT_DECLs). Unfortunately, ATM DECL_BY_REFERENCE shares the > > same bit as TREE_PRIVATE. I believe the C++ FE (the only setter of > > TREE_PRIVATE) only sets this on FUNCTION_DECLs/FIELD_DECLs and > > static data members (i.e. TREE_STATIC VAR_DECLs), so this patch extends > > DECL_BY_REFERENCE uses from PARM_DECL/RESULT_DECL also to !TREE_STATIC > > VAR_DECLs. Without this parameters passed by invisible reference > > referenced from nested routines will show up as pointers in the debug info, > > which is undesirable. > > This overloading will eventually cause a bug if we don't check for it > when ENABLE_TREE_CHECKING is defined. Can you, in a separate patch, > modify TREE_PRIVATE and DECL_BY_REFERENCE to verify that they are being > invoked appropriately? Also modify TREE_PROTECTED to check the same set > of conditions as TREE_PRIVATE. Then fix any fallout. Attached is a patch to do that, bootstrapped/regtested on x86_64-linux. But, I see that tree_decl_common hase 49 unused bits (23 in struct tree_base and 26 in struct tree_decl_common), so perhaps it is not worth all the overloading trouble and we could instead just allocate a different bit for DECL_BY_REFERENCE (this is done in the second patch, also bootstrapped/regtested on x86_64-linux). Both patches are incremental, on top of the 3 patches you've ACKed. Ok for trunk? Which one? Jakub
Attachment:
Y300
Description: Text document
Attachment:
Y300b
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |