diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 74a0dba28f7..7c78efc6f67 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -89e46ae0cde7bebd8e97434355c5b7e57d902613 +0176cbc6dbd2170bfe2eb8904b80ddfe4c946997 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/expressions.cc b/gcc/go/gofrontend/expressions.cc index 1e4d90647b8..82de4d815ab 100644 --- a/gcc/go/gofrontend/expressions.cc +++ b/gcc/go/gofrontend/expressions.cc @@ -210,7 +210,11 @@ Expression::convert_type_to_interface(Type* lhs_type, Expression* rhs, } // This should have been checked already. - go_assert(lhs_interface_type->implements_interface(rhs_type, NULL)); + if (!lhs_interface_type->implements_interface(rhs_type, NULL)) + { + go_assert(saw_errors()); + return Expression::make_error(location); + } // An interface is a tuple. If LHS_TYPE is an empty interface type, // then the first field is the type descriptor for RHS_TYPE.