From patchwork Mon May 7 18:24:39 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Ian Lance Taylor X-Patchwork-Id: 157377 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id C8A2FB6FA8 for ; Tue, 8 May 2012 04:25:07 +1000 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1337019908; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:From:To:Subject:Date:Message-ID:User-Agent: MIME-Version:Content-Type:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=Ym6xAdzy4bqd9IxqVvMjmsKRBzY=; b=BrDF1DJdAyRhG+o tekU4/YEbiVf0UIl7yCMEdazvd88+o9zQdDhUFVLvIlVbHKkPbOoJycoDsO4gtCg EbbWg+AUnRkwtl16byb70S7+icUoYlAxGVk4QZmajf60eG27jtRxdIsdCw+oiCS4 Ym127BhfbstKIM16Nn9lTSB5oURM= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:X-Google-DKIM-Signature:Received:Received:Received:From:To:Subject:Date:Message-ID:User-Agent:MIME-Version:Content-Type:X-Gm-Message-State:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=fzUEM3W1061wy1eADrdKs7KJ8w4YWSLozpjLzimq8/DrNQ6YsSIAEgi0/fuQiB ZMJwApA7CZatUz9Dg0EO0P1xO9X8TTE0jJbRPgw625Uoz9b77Ae3tN0mYke2TD1B tXzDVJhG7bkxHearRKpNctBVp5/q83S9mgb89gR78yrKk=; Received: (qmail 27202 invoked by alias); 7 May 2012 18:24:58 -0000 Received: (qmail 27190 invoked by uid 22791); 7 May 2012 18:24:56 -0000 X-SWARE-Spam-Status: No, hits=-4.4 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, KHOP_RCVD_TRUST, RCVD_IN_DNSWL_LOW, RCVD_IN_HOSTKARMA_YE, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-pz0-f48.google.com (HELO mail-pz0-f48.google.com) (209.85.210.48) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 07 May 2012 18:24:43 +0000 Received: by dadz8 with SMTP id z8so3464040dad.21 for ; Mon, 07 May 2012 11:24:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:subject:date:message-id:user-agent:mime-version :content-type:x-gm-message-state; bh=tNw4XxabnwKCncGpCdscAmj59RJgFcinsRMOQis+ilw=; b=KCTilZuL5v4PjF6N2S7ukAogAp02axGCrfC0lCAwqNPzxGE4zuAikmMJLw9jlKfYl/ eYg5FYstiePGczb2riJRwojiG5jU/4BELIk8pD3kvVm0JMgsPBBytunEw4lIeGgHrwFe cTZY2+mdQHmwjQNeb5+JP8Nj9QCZoV0Yhgrd+NUOHdhTGFKjCRJb3NHPVir9wVIEOHg2 E9BWU+U0p+vJ3pPAnvDLtrGCvRwgbH8TKWJjtkZNfvlz9uQRXv9sv+y5trqhO6IG97vG eN50pwUrC+IWjSSfDWLr4ZnzBDjESxNWcPho/jbhpq54ksvie49Q+psP9xp1zUpMEX0H r7pw== Received: by 10.68.134.232 with SMTP id pn8mr48004537pbb.106.1336415083228; Mon, 07 May 2012 11:24:43 -0700 (PDT) Received: by 10.68.134.232 with SMTP id pn8mr48004501pbb.106.1336415083069; Mon, 07 May 2012 11:24:43 -0700 (PDT) Received: from coign.google.com ([216.239.45.130]) by mx.google.com with ESMTPS id qs6sm4284873pbc.38.2012.05.07.11.24.41 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 07 May 2012 11:24:41 -0700 (PDT) From: Ian Lance Taylor To: gcc-patches@gcc.gnu.org, gofrontend-dev@googlegroups.com Subject: Go patch committed: Don't permit !0 Date: Mon, 07 May 2012 11:24:39 -0700 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 X-Gm-Message-State: ALoCoQnibcyV248NFf6047H0+VsF0wmcQwrOUnrlgsFrxS1rdJu0Eg6G+KDsFASICKqktHAv602bzjrfXtTuz3zlk5fcVpCYKHKjcTniWJTio7Yf+itkqnarBBWfvWQTbQwcg7J2UBx3poGhBbtHXZLVPap9HJxZRvmKqsZjUWkEDLkUhXA2OK8= X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org This patch from Rémy Oudompheng fixes a bug in the Go frontend: it was permitting the ! unary operator with integer operands, but in the Go language ! is only permitted with boolean operands. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline and 4.7 branch. Ian diff -r 838f1f13015d go/expressions.cc --- a/go/expressions.cc Fri May 04 12:30:49 2012 -0700 +++ b/go/expressions.cc Mon May 07 11:19:42 2012 -0700 @@ -3606,8 +3606,7 @@ return Expression::make_error(this->location()); } - if (op == OPERATOR_PLUS || op == OPERATOR_MINUS - || op == OPERATOR_NOT || op == OPERATOR_XOR) + if (op == OPERATOR_PLUS || op == OPERATOR_MINUS || op == OPERATOR_XOR) { Numeric_constant nc; if (expr->numeric_constant_value(&nc)) @@ -3697,10 +3696,10 @@ else go_unreachable(); + case OPERATOR_XOR: + break; + case OPERATOR_NOT: - case OPERATOR_XOR: - break; - case OPERATOR_AND: case OPERATOR_MULT: return false; @@ -3911,6 +3910,10 @@ break; case OPERATOR_NOT: + if (!type->is_boolean_type()) + this->report_error(_("expected boolean type")); + break; + case OPERATOR_XOR: if (type->integer_type() == NULL && !type->is_boolean_type())