Commit ecad0c25 by Ian Lance Taylor

Traverse expressions when looking for types.

From-SVN: r168478
parent 7516c368
......@@ -4159,9 +4159,6 @@ Bindings::traverse(Traverse* traverse, bool is_global)
if (t != NULL
&& Type::traverse(t, traverse) == TRAVERSE_EXIT)
return TRAVERSE_EXIT;
}
if ((traverse_mask & Traverse::traverse_expressions) != 0)
{
if (p->const_value()->traverse_expression(traverse)
== TRAVERSE_EXIT)
return TRAVERSE_EXIT;
......@@ -4188,7 +4185,8 @@ Bindings::traverse(Traverse* traverse, bool is_global)
return TRAVERSE_EXIT;
}
if (p->is_variable()
&& (traverse_mask & Traverse::traverse_expressions) != 0)
&& ((traverse_mask & Traverse::traverse_types) != 0
|| (traverse_mask & Traverse::traverse_expressions) != 0))
{
if (p->var_value()->traverse_expression(traverse)
== TRAVERSE_EXIT)
......
......@@ -108,7 +108,8 @@ Statement::traverse_expression_list(Traverse* traverse,
{
if (expr_list == NULL)
return TRAVERSE_CONTINUE;
if ((traverse->traverse_mask() & Traverse::traverse_expressions) == 0)
if ((traverse->traverse_mask()
& (Traverse::traverse_types | Traverse::traverse_expressions)) == 0)
return TRAVERSE_CONTINUE;
return expr_list->traverse(traverse);
}
......@@ -3010,7 +3011,8 @@ int
Case_clauses::Case_clause::traverse(Traverse* traverse)
{
if (this->cases_ != NULL
&& (traverse->traverse_mask() & Traverse::traverse_expressions) != 0)
&& (traverse->traverse_mask()
& (Traverse::traverse_types | Traverse::traverse_expressions)) != 0)
{
if (this->cases_->traverse(traverse) == TRAVERSE_EXIT)
return TRAVERSE_EXIT;
......@@ -3941,7 +3943,8 @@ int
Select_clauses::Select_clause::traverse(Traverse* traverse)
{
if (!this->is_lowered_
&& (traverse->traverse_mask() & Traverse::traverse_expressions) != 0)
&& (traverse->traverse_mask()
& (Traverse::traverse_types | Traverse::traverse_expressions)) != 0)
{
if (this->channel_ != NULL)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment