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
|
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.
|
||||||
|
@ -348,7 +348,15 @@ Statement::make_variable_declaration(Named_object* var)
|
|||||||
Type*
|
Type*
|
||||||
Temporary_statement::type() const
|
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.
|
// Traversal.
|
||||||
|
Loading…
Reference in New Issue
Block a user