optimize.c (initialize_inlined_parameters): Don't set TREE_READONLY for a VAR_DECL taking the place of an inlined PARM_DECL.

* optimize.c (initialize_inlined_parameters): Don't set
	TREE_READONLY for a VAR_DECL taking the place of an inlined
	PARM_DECL.

From-SVN: r42480
This commit is contained in:
Mark Mitchell 2001-05-23 02:14:51 +00:00 committed by Mark Mitchell
parent 8d12b80039
commit 39e0656d10
2 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2001-05-22 Mark Mitchell <mark@codesourcery.com>
* optimize.c (initialize_inlined_parameters): Don't set
TREE_READONLY for a VAR_DECL taking the place of an inlined
PARM_DECL.
2001-05-22 Jason Merrill <jason_merrill@redhat.com>
* class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.

View File

@ -498,6 +498,18 @@ initialize_inlined_parameters (id, args, fn)
DECL_INITIAL (var) = value;
else
{
/* Even if P was TREE_READONLY, the new VAR should not be.
In the original code, we would have constructed a
temporary, and then the function body would have never
changed the value of P. However, now, we will be
constructing VAR directly. The constructor body may
change its value multiple times as it is being
constructed. Therefore, it must not be TREE_READONLY;
the back-end assumes that TREE_READONLY variable is
assigned to only once. */
TREE_READONLY (var) = 0;
/* Build a run-time initialization. */
init_stmt = build_stmt (EXPR_STMT,
build (INIT_EXPR, TREE_TYPE (p),
var, value));