Tree inlining

Mark Mitchell mark@codesourcery.com
Thu Mar 14 23:34:00 GMT 2002


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



More information about the Gcc mailing list