From: Ian Lance Taylor Date: Mon, 3 Aug 2015 18:53:56 +0000 (+0000) Subject: compiler: Don't make erroneous type descriptors. X-Git-Tag: basepoints/gcc-7~5293 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f2fef1c8a3a93f320e9842d09a0ad44d0157281b;p=thirdparty%2Fgcc.git compiler: Don't make erroneous type descriptors. There is no need to make type descriptors for named types when there are errors during package compilation. Particularly, if the error in package compilation is from a malformed named type, there is no guarantee a type descriptor can be created. Fixes golang/go#11560. Reviewed-on: https://go-review.googlesource.com/12792 From-SVN: r226527 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 5490d9f7fa9b..e3a971a8e619 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -33d59eff1bd5de29f1fbde3b7625db28595835fd +2b1a79c6395991fc4e60e20312ff44065fdb816b The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/gcc/go/gofrontend/gogo.cc b/gcc/go/gofrontend/gogo.cc index 77b4d5265075..52bec3dc6dd8 100644 --- a/gcc/go/gofrontend/gogo.cc +++ b/gcc/go/gofrontend/gogo.cc @@ -7151,7 +7151,7 @@ Named_object::get_backend(Gogo* gogo, std::vector& const_decls, // still be returned by some function. Simply calling the // type_descriptor method is enough to create the type // descriptor, even though we don't do anything with it. - if (this->package_ == NULL) + if (this->package_ == NULL && !saw_errors()) { named_type-> type_descriptor_pointer(gogo, Linemap::predeclared_location());