Fixes golang/go#11568.
Reviewed-on: https://go-review.googlesource.com/12653
From-SVN: r226788
-5891a4c0615f469edcefc6d7a85a88984ba940aa
+3bd90ea170b9c9aecedd37796acdd2712b29922b
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
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.