Commit 7c97a53a by Ian Lance Taylor

compiler: Don't crash on invalid array type declarations.

    
    Fixes golang/go#12937.
    
    Reviewed-on: https://go-review.googlesource.com/16233

From-SVN: r232857
parent e4aac1d1
731941c155214d6158fa800e52ab3225c0b55f73 721c778adb8f99d8a6b7795dbad86013ccc9ba91
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.
...@@ -2699,6 +2699,15 @@ Gogo::lower_parse_tree() ...@@ -2699,6 +2699,15 @@ Gogo::lower_parse_tree()
{ {
Lower_parse_tree lower_parse_tree(this, NULL); Lower_parse_tree lower_parse_tree(this, NULL);
this->traverse(&lower_parse_tree); this->traverse(&lower_parse_tree);
// There might be type definitions that involve expressions such as the
// array length. Make sure to lower these expressions as well. Otherwise,
// errors hidden within a type can introduce unexpected errors into later
// passes.
for (std::vector<Type*>::iterator p = this->verify_types_.begin();
p != this->verify_types_.end();
++p)
Type::traverse(*p, &lower_parse_tree);
} }
// Lower a block. // Lower a block.
......
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