Commit 0468f67f by Ian Lance Taylor

compiler: avoid compiler crash on invalid program

    
    I encountered this crash while working on upgrading libgo to the 1.9
    release.  I no longer have the cause of the crash, but it doesn't much
    matter, as the policy for crash-on-invalid errors is to fix the crash
    but not bother to commit the invalid test case.
    
    Reviewed-on: https://go-review.googlesource.com/62750

From-SVN: r252748
parent 03ff36aa
89e46ae0cde7bebd8e97434355c5b7e57d902613 0176cbc6dbd2170bfe2eb8904b80ddfe4c946997
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.
...@@ -210,7 +210,11 @@ Expression::convert_type_to_interface(Type* lhs_type, Expression* rhs, ...@@ -210,7 +210,11 @@ Expression::convert_type_to_interface(Type* lhs_type, Expression* rhs,
} }
// This should have been checked already. // 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, // An interface is a tuple. If LHS_TYPE is an empty interface type,
// then the first field is the type descriptor for RHS_TYPE. // then the first field is the type descriptor for RHS_TYPE.
......
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