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]

C++ PATCH for documentation on CLEANUP_POINT_EXPR



Minor documentation improvements.

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

1999-10-07  Mark Mitchell  <mark@codesourcery.com>

	* ir.texi: Improve documentation for STMT_EXPR.  Describe
	CLEANUP_POINT_EXPR.

Index: cp/ir.texi
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/ir.texi,v
retrieving revision 1.16
diff -c -p -r1.16 ir.texi
*** ir.texi	1999/10/06 19:01:44	1.16
--- ir.texi	1999/10/08 05:35:36
*************** The @code{WHILE_BODY} is the body of the
*** 1475,1480 ****
--- 1475,1481 ----
  @tindex BIND_EXPR
  @tindex LOOP_EXPR
  @tindex EXIT_EXPR
+ @tindex CLEANUP_POINT_EXPR
  @tindex ARRAY_REF
  
  The internal representation for expressions is for the most part quite
*************** expression would normally appear.  The @
*** 1824,1830 ****
  such an expression.  The @code{STMT_EXPR_STMT} gives the statement
  contained in the expression; this is always a @code{COMPOUND_STMT}.  The
  value of the expression is the value of the last sub-statement in the
! @code{COMPOUND_STMT}.
  
  @item BIND_EXPR
  These nodes represent local blocks.  The first operand is a list of
--- 1825,1843 ----
  such an expression.  The @code{STMT_EXPR_STMT} gives the statement
  contained in the expression; this is always a @code{COMPOUND_STMT}.  The
  value of the expression is the value of the last sub-statement in the
! @code{COMPOUND_STMT}.  More precisely, the value is the value computed
! by the last @code{EXPR_STMT} in the outermost scope of the
! @code{COMPOUND_STMT}.  For example, in:
! @example
! (@{ 3; @})
! @end example
! the value is @code{3} while in:
! @example
! (@{ if (x) { 3; } @})
! @end example
! (represented by a nested @code{COMPOUND_STMT}), there is no value.  If
! the @code{STMT_EXPR} does not yield a value, it's type will be
! @code{void}.
  
  @item BIND_EXPR
  These nodes represent local blocks.  The first operand is a list of
*************** These nodes represent conditional exits 
*** 1843,1848 ****
--- 1856,1867 ----
  @code{LOOP_EXPR}.  The single operand is the condition; if it is
  non-zero, then the loop should be exited.  An @code{EXIT_EXPR} will only
  appear within a @code{LOOP_EXPR}.
+ 
+ @item CLEANUP_POINT_EXPR
+ These nodes represent full-expressions.  The single oeprand is an
+ expression to evaluate.  Any destructor calls engendered by the creation
+ of temporaries during the evaluation of that expression should be
+ performed immediately after the expression is evaluated.
  
  @item CONSTRUCTOR
  These nodes represent the brace-enclosed initializers for a structure or


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