parse.y (fix_constructors): Test if a CALL_EXPR invokes `this'.
* java/parse.y (fix_constructors): Test if a CALL_EXPR invokes `this'. If so, don't build instance initializers. From-SVN: r43743
This commit is contained in:
parent
1abd48ad23
commit
9be7529dbb
2 changed files with 9 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2001-07-03 Jeff Sturm <jsturm@one-point.com>
|
||||
|
||||
* parse.y (fix_constructors): Test if a CALL_EXPR invokes
|
||||
`this'. If so, don't build instance initializers.
|
||||
|
||||
2001-06-28 Gabriel Dos Reis <gdr@codesourcery.com>
|
||||
|
||||
* lang.c: #include diagnostic.h
|
||||
|
|
|
@ -8558,6 +8558,7 @@ fix_constructors (mdecl)
|
|||
else
|
||||
{
|
||||
int found = 0;
|
||||
int invokes_this = 0;
|
||||
tree found_call = NULL_TREE;
|
||||
tree main_block = BLOCK_EXPR_BODY (body);
|
||||
tree ii; /* Instance Initializer */
|
||||
|
@ -8567,6 +8568,8 @@ fix_constructors (mdecl)
|
|||
{
|
||||
case CALL_EXPR:
|
||||
found = CALL_EXPLICIT_CONSTRUCTOR_P (body);
|
||||
if (CALL_THIS_CONSTRUCTOR_P (body))
|
||||
invokes_this = 1;
|
||||
body = NULL_TREE;
|
||||
break;
|
||||
case COMPOUND_EXPR:
|
||||
|
@ -8601,7 +8604,7 @@ fix_constructors (mdecl)
|
|||
}
|
||||
|
||||
/* Insert the instance initializer block right after. */
|
||||
if ((ii = build_instance_initializer (mdecl)))
|
||||
if (!invokes_this && (ii = build_instance_initializer (mdecl)))
|
||||
compound = add_stmt_to_compound (compound, NULL_TREE, ii);
|
||||
|
||||
/* Fix the constructor main block if we're adding extra stmts */
|
||||
|
|
Loading…
Add table
Reference in a new issue