diff options
Diffstat (limited to 'gcc/go')
-rw-r--r-- | gcc/go/gofrontend/types.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index dd0a861..840de2b 100644 --- a/gcc/go/gofrontend/types.cc +++ b/gcc/go/gofrontend/types.cc @@ -482,6 +482,15 @@ bool Type::are_assignable(const Type* lhs, const Type* rhs, std::string* reason) { // Do some checks first. Make sure the types are defined. + if (rhs != NULL + && rhs->forwarded()->forward_declaration_type() == NULL + && rhs->is_void_type()) + { + if (reason != NULL) + *reason = "non-value used as value"; + return false; + } + if (lhs != NULL && lhs->forwarded()->forward_declaration_type() == NULL) { // Any value may be assigned to the blank identifier. |