compiler: Reject invalid nil == nil comparisons.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 4 Dec 2012 06:44:19 +0000 (06:44 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 4 Dec 2012 06:44:19 +0000 (06:44 +0000)
From-SVN: r194119

gcc/go/gofrontend/expressions.cc

index bfc1b62..e0690e7 100644 (file)
@@ -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))
        {