From d4d2a98fb267ed59fad4a1d2e7bfe92ac7f6a071 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 19 Jan 2011 05:38:41 +0000 Subject: [PATCH] Don't crash using value of something with no value. From-SVN: r168982 --- gcc/go/gofrontend/types.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc index dd0a861d49f..840de2ba82f 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.