]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
compiler: Don't crash on erroneous array return types.
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 27 Jan 2016 00:00:58 +0000 (00:00 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 27 Jan 2016 00:00:58 +0000 (00:00 +0000)
    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

gcc/go/gofrontend/MERGE
gcc/go/gofrontend/parse.cc

index 96a1e9ffe55dfdcbd25b5fedc413db447408fd95..8ece73d81166536970f243e5abffb34dd362703d 100644 (file)
@@ -1,4 +1,4 @@
-721c778adb8f99d8a6b7795dbad86013ccc9ba91
+9e68d67d65fd72b9b4f163f2f26e15cd0d3e2cd2
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 9d6a8c6f4a646582bd1b630342cd6331ae49a41b..5c493700de68dd60eda888ff7def094aec12560c 100644 (file)
@@ -419,6 +419,8 @@ Parse::array_type(bool may_use_ellipsis)
     }
 
   Type* element_type = this->type();
+  if (element_type->is_error_type())
+    return Type::make_error_type();
 
   return Type::make_array_type(element_type, length);
 }