Don't crash on erroneous thunk.

From-SVN: r170031
This commit is contained in:
Ian Lance Taylor 2011-02-10 23:58:36 +00:00
parent 4a299bf4ff
commit c7f4431d45

View file

@ -1776,8 +1776,13 @@ Thunk_statement::do_determine_types()
// Now that we know the types of the call, build the struct used to
// pass parameters.
Function_type* fntype =
this->call_->call_expression()->get_function_type();
Call_expression* ce = this->call_->call_expression();
if (ce == NULL)
{
gcc_assert(this->call_->is_error_expression());
return;
}
Function_type* fntype = ce->get_function_type();
if (fntype != NULL && !this->is_simple(fntype))
this->struct_type_ = this->build_struct(fntype);
}
@ -1788,6 +1793,11 @@ void
Thunk_statement::do_check_types(Gogo*)
{
Call_expression* ce = this->call_->call_expression();
if (ce == NULL)
{
gcc_assert(this->call_->is_error_expression());
return;
}
Function_type* fntype = ce->get_function_type();
if (fntype != NULL && fntype->is_method())
{