Commit 82c1a217 by Ian Lance Taylor

compiler: Don't crash on erroneous array return types.

    
    Another issue with erroneous array types.  When an erroneous array
    type is in a function's signature, particularly the return type, we
    must guarantee that type is changed into an error type.  Otherwise,
    any operations that work on arrays and slices will crash when applied
    to the erroneous array return type.
    
    Fixes golang/go#12939.
    
    Reviewed-on: https://go-review.googlesource.com/16235

From-SVN: r232858
parent 7c97a53a
721c778adb8f99d8a6b7795dbad86013ccc9ba91 9e68d67d65fd72b9b4f163f2f26e15cd0d3e2cd2
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.
...@@ -419,6 +419,8 @@ Parse::array_type(bool may_use_ellipsis) ...@@ -419,6 +419,8 @@ Parse::array_type(bool may_use_ellipsis)
} }
Type* element_type = this->type(); Type* element_type = this->type();
if (element_type->is_error_type())
return Type::make_error_type();
return Type::make_array_type(element_type, length); return Type::make_array_type(element_type, length);
} }
......
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