summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2011-01-04 17:42:21 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2011-01-04 17:42:21 +0000
commit06aee892a2a64677ddc92132f04f4eda9f9659a6 (patch)
treed91b61e7dcce07a7d2eb11d8eec2c4bd6600ac4c
parent7cecf4c1f99a267ea01cc8ba9a6e068e4acf665d (diff)
downloadppe42-gcc-06aee892a2a64677ddc92132f04f4eda9f9659a6.tar.gz
ppe42-gcc-06aee892a2a64677ddc92132f04f4eda9f9659a6.zip
Avoid crash when selecting on non-channel.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168473 138bc75d-0d04-0410-961f-82ee72b054a4
-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 b5ded99e158..3498598754a 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;
OpenPOWER on IntegriCloud