aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2011-01-04 17:42:21 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-01-04 17:42:21 +0000
commitb6493d38909bc3ae99d307761baa7643d1e0d5d9 (patch)
treed91b61e7dcce07a7d2eb11d8eec2c4bd6600ac4c /gcc/go
parent017096ca1c3ba109f7c69a56888ae30ba61c191e (diff)
downloadgcc-b6493d38909bc3ae99d307761baa7643d1e0d5d9.zip
gcc-b6493d38909bc3ae99d307761baa7643d1e0d5d9.tar.gz
gcc-b6493d38909bc3ae99d307761baa7643d1e0d5d9.tar.bz2
Avoid crash when selecting on non-channel.
From-SVN: r168473
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/statements.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/statements.cc b/gcc/go/gofrontend/statements.cc
index b5ded99..3498598 100644
--- a/gcc/go/gofrontend/statements.cc
+++ b/gcc/go/gofrontend/statements.cc
@@ -4165,6 +4165,14 @@ Select_clauses::get_tree(Translate_context* context,
continue;
}
+ if (p->channel()->type()->channel_type() == NULL)
+ {
+ // We should have given an error in the send or receive
+ // statement we created via lowering.
+ gcc_assert(saw_errors());
+ return error_mark_node;
+ }
+
tree channel_tree = p->channel()->get_tree(context);
if (channel_tree == error_mark_node)
return error_mark_node;