mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 15:39:58 +08:00
semantics.c (simplify_aggr_init_exprs_p): Don't walk into types.
* semantics.c (simplify_aggr_init_exprs_p): Don't walk into types. From-SVN: r32210
This commit is contained in:
parent
4278955754
commit
22e92ac3b6
@ -1,3 +1,8 @@
|
||||
2000-02-26 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* semantics.c (simplify_aggr_init_exprs_p): Don't walk into
|
||||
types.
|
||||
|
||||
2000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at>
|
||||
|
||||
* rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info
|
||||
|
@ -2618,9 +2618,19 @@ simplify_aggr_init_exprs_r (tp, walk_subtrees, data)
|
||||
tree call_type;
|
||||
int copy_from_buffer_p;
|
||||
|
||||
/* Only AGGR_INIT_EXPRs are interesting. */
|
||||
aggr_init_expr = *tp;
|
||||
if (TREE_CODE (aggr_init_expr) != AGGR_INIT_EXPR)
|
||||
/* We don't need to walk into types; there's nothing in a type that
|
||||
needs simplification. (And, furthermore, there are places we
|
||||
actively don't want to go. For example, we don't want to wander
|
||||
into the default arguments for a FUNCTION_DECL that appears in a
|
||||
CALL_EXPR.) */
|
||||
if (TYPE_P (aggr_init_expr))
|
||||
{
|
||||
*walk_subtrees = 0;
|
||||
return NULL_TREE;
|
||||
}
|
||||
/* Only AGGR_INIT_EXPRs are interesting. */
|
||||
else if (TREE_CODE (aggr_init_expr) != AGGR_INIT_EXPR)
|
||||
return NULL_TREE;
|
||||
|
||||
/* Form an appropriate CALL_EXPR. */
|
||||
|
27
gcc/testsuite/g++.old-deja/g++.other/defarg4.C
Normal file
27
gcc/testsuite/g++.old-deja/g++.other/defarg4.C
Normal file
@ -0,0 +1,27 @@
|
||||
// Origin: scott snyder <snyder@fnal.gov>
|
||||
|
||||
class complex
|
||||
{
|
||||
public:
|
||||
complex();
|
||||
};
|
||||
|
||||
struct MLC33
|
||||
{
|
||||
MLC33( const complex& = complex() );
|
||||
};
|
||||
|
||||
void EmptyClone()
|
||||
{
|
||||
MLC33();
|
||||
}
|
||||
|
||||
void makeM33()
|
||||
{
|
||||
MLC33();
|
||||
}
|
||||
|
||||
void Clone()
|
||||
{
|
||||
MLC33();
|
||||
}
|
Loading…
Reference in New Issue
Block a user