diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-01-04 17:42:21 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2011-01-04 17:42:21 +0000 |
commit | b6493d38909bc3ae99d307761baa7643d1e0d5d9 (patch) | |
tree | d91b61e7dcce07a7d2eb11d8eec2c4bd6600ac4c /gcc/go | |
parent | 017096ca1c3ba109f7c69a56888ae30ba61c191e (diff) | |
download | gcc-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.cc | 8 |
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; |