This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Tree inlining
- From: Mark Mitchell <mark at codesourcery dot com>
- To: gcc at gcc dot gnu dot org, aoliva at redhat dot com
- Date: Thu, 14 Mar 2002 23:32:52 -0800
- Subject: Tree inlining
At some point, it appears that someone #if 0'd important assertions
in tree-inline.c:
#if 0
/* All automatic variables should have a DECL_CONTEXT indicating
what function they come from. */
if ((TREE_CODE (*tp) == VAR_DECL || TREE_CODE (*tp) == LABEL_DECL)
&& DECL_NAMESPACE_SCOPE_P (*tp))
if (! DECL_EXTERNAL (*tp) && ! TREE_STATIC (*tp))
abort ();
#endif
and:
#if 0
else if (nonstatic_local_decl_p (*tp)
&& DECL_CONTEXT (*tp) != VARRAY_TREE (id->fns, 0))
abort ();
#endif
Besides the fact that our policy is rely on CVS, rather than #if 0,
to store revisions, there is the more important issue that these
assertions are important. They served to find many bugs as this
code was being developed. If these assertions are not valid for
the C front end, either the C front end should be changed so that
they are valid (probably the best choice), or they should be made
into C++-specific hooks.
Does anyone remember why these changes were made?
--
Mark Mitchell mark@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com