From patchwork Fri Jan 3 15:09:17 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marc Glisse X-Patchwork-Id: 306603 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]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id C849D2C00A1 for ; Sat, 4 Jan 2014 02:09:32 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type :content-id; q=dns; s=default; b=s7Nj+W+b4UQmAVuNmnFmvxkgVN29KDN RGrkd9XBxIaw+7DWePTR3YnsSKG35aTaAUL37ByD1pC/FQmfwKn2MiEv+Xf2fXux S1JidQOR08FlUbZUZscds890cIMJAnEGS7NWh84npUVGtRUaO69PMJ5+gpfDrMWL WBsHY+WdVAIU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:mime-version:content-type :content-id; s=default; bh=1phZPBTtOivcnHJj+x5PU3xwgpw=; b=M9B/2 4GC7eIbA+DoyrXWX9HS0CgtYP7pXtf4m7fCq26iZbCLX5/5Mhz2I90LvKD9bVyWM r/hKOn3xcY67yWw+DEFC2qBWp+naFpzVhNUb8Tym82Sz2ABeAPz2g5u9976SUu0C U7zBf9wrLlIp4ge4dtRrri6ThqKEjquv1XDVis= Received: (qmail 27214 invoked by alias); 3 Jan 2014 15:09:24 -0000 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 Received: (qmail 27204 invoked by uid 89); 3 Jan 2014 15:09:23 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.7 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mail2-relais-roc.national.inria.fr Received: from mail2-relais-roc.national.inria.fr (HELO mail2-relais-roc.national.inria.fr) (192.134.164.83) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Fri, 03 Jan 2014 15:09:21 +0000 Received: from stedding.saclay.inria.fr ([193.55.250.194]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES128-SHA; 03 Jan 2014 16:09:18 +0100 Received: from glisse (helo=localhost) by stedding.saclay.inria.fr with local-esmtp (Exim 4.82) (envelope-from ) id 1Vz6NC-0000Dv-18; Fri, 03 Jan 2014 16:09:18 +0100 Date: Fri, 3 Jan 2014 16:09:17 +0100 (CET) From: Marc Glisse To: gcc-patches@gcc.gnu.org cc: jason@redhat.com Subject: [C++] PR58950: warn for unused __builtin_shuffle result Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-ID: Hello, this is the piece of patch you commented on in the PR. Bootstrap+testsuite on x86_64-unknown-linux-gnu. 2014-01-03 Marc Glisse PR c++/58950 gcc/cp/ * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR. gcc/testsuite/ * g++.dg/pr58950.C: New file. Index: gcc/cp/cvt.c =================================================================== --- gcc/cp/cvt.c (revision 206313) +++ gcc/cp/cvt.c (working copy) @@ -1396,21 +1396,23 @@ convert_to_void (tree expr, impl_conv_vo code = TREE_CODE (e); tclass = TREE_CODE_CLASS (code); if ((tclass == tcc_comparison || tclass == tcc_unary || (tclass == tcc_binary && !(code == MODIFY_EXPR || code == INIT_EXPR || code == PREDECREMENT_EXPR || code == PREINCREMENT_EXPR || code == POSTDECREMENT_EXPR - || code == POSTINCREMENT_EXPR))) + || code == POSTINCREMENT_EXPR)) + || code == VEC_PERM_EXPR + || code == VEC_COND_EXPR) && (complain & tf_warning)) warning_at (loc, OPT_Wunused_value, "value computed is not used"); } } expr = build1 (CONVERT_EXPR, void_type_node, expr); } if (! TREE_SIDE_EFFECTS (expr)) expr = void_zero_node; return expr; } Index: gcc/testsuite/g++.dg/pr58950.C =================================================================== --- gcc/testsuite/g++.dg/pr58950.C (revision 0) +++ gcc/testsuite/g++.dg/pr58950.C (working copy) @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-options "-Wall" } */ + +void f(){ + int i __attribute__((vector_size(2*sizeof(int)))) = { 2, 3 }; + __builtin_shuffle (i, i); /* { dg-warning "value computed is not used" } */ + ++i?1:0; /* { dg-warning "value computed is not used" } */ +}