aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2012-12-04 06:44:19 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-12-04 06:44:19 +0000
commit3fa057a43770dbb23a0fb21a94cab1789df3277c (patch)
tree64966e7210e3f5894aeff8abf63af39dfe1d22d2 /gcc
parent98fd70c20f55a656de0c40a7f5fb982166c2ad34 (diff)
downloadgcc-3fa057a43770dbb23a0fb21a94cab1789df3277c.zip
gcc-3fa057a43770dbb23a0fb21a94cab1789df3277c.tar.gz
gcc-3fa057a43770dbb23a0fb21a94cab1789df3277c.tar.bz2
compiler: Reject invalid nil == nil comparisons.
From-SVN: r194119
Diffstat (limited to 'gcc')
-rw-r--r--gcc/go/gofrontend/expressions.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index bfc1b62..e0690e7 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -5610,6 +5610,11 @@ Binary_expression::do_check_types(Gogo*)
|| this->op_ == OPERATOR_GT
|| this->op_ == OPERATOR_GE)
{
+ if (left_type->is_nil_type() && right_type->is_nil_type())
+ {
+ this->report_error(_("invalid comparison of nil with nil"));
+ return;
+ }
if (!Type::are_assignable(left_type, right_type, NULL)
&& !Type::are_assignable(right_type, left_type, NULL))
{