compiler: Don't make void-typed temporaries.
Fixes golang/go#11568. Reviewed-on: https://go-review.googlesource.com/12653 From-SVN: r226788
This commit is contained in:
parent
d2be285bf5
commit
2abb463fab
@ -1,4 +1,4 @@
|
||||
5891a4c0615f469edcefc6d7a85a88984ba940aa
|
||||
3bd90ea170b9c9aecedd37796acdd2712b29922b
|
||||
|
||||
The first line of this file holds the git revision number of the last
|
||||
merge done from the gofrontend repository.
|
||||
|
@ -348,7 +348,15 @@ Statement::make_variable_declaration(Named_object* var)
|
||||
Type*
|
||||
Temporary_statement::type() const
|
||||
{
|
||||
return this->type_ != NULL ? this->type_ : this->init_->type();
|
||||
Type* type = this->type_ != NULL ? this->type_ : this->init_->type();
|
||||
|
||||
// Temporary variables cannot have a void type.
|
||||
if (type->is_void_type())
|
||||
{
|
||||
go_assert(saw_errors());
|
||||
return Type::make_error_type();
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
// Traversal.
|
||||
|
Loading…
Reference in New Issue
Block a user