Commit ab1be99f by Ian Lance Taylor

compiler: improve recursive type detection

    
    Detect recursive type definition like
    "type T0 T1; type T1 T2; ...... type Tn T0".
    
    Fixes golang/go#25320.
    
    Reviewed-on: https://go-review.googlesource.com/c/159837

From-SVN: r268347
parent 52bfbb69
d67c4bf0c42b79d54925ba8c5f23278ee6c3efb6 5ccb2d8593963e06ec3a35d362b384e82301d9f0
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -10259,6 +10259,15 @@ Find_type_use::type(Type* type) ...@@ -10259,6 +10259,15 @@ Find_type_use::type(Type* type)
break; break;
case Type::TYPE_NAMED: case Type::TYPE_NAMED:
if (type->named_type() == type->base()->named_type())
{
this->found_ = true;
return TRAVERSE_EXIT;
}
else
go_assert(saw_errors());
break;
case Type::TYPE_FORWARD: case Type::TYPE_FORWARD:
go_assert(saw_errors()); go_assert(saw_errors());
break; break;
......
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