From patchwork Fri Apr 27 13:59:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Sidwell X-Patchwork-Id: 905762 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-476904-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=acm.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="r/aQ0CYM"; dkim-atps=neutral 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 40XbD74cxGz9s08 for ; Sat, 28 Apr 2018 00:00:06 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:to :from:subject:message-id:date:mime-version:content-type; q=dns; s=default; b=k5u08h59qQedCyu5acrWBhyOqY3ee6pVeSRDLEConFbNeO80Ac 4IrA2gcl1i0WtEEKjaB5E+dAx+tHOYAvErXHiFnqT8PCju7DG2KLSrxcLt32jnOW sn24TwOPlcQQ4hjcv4VDYQZhNtZDO5Sx3ha6Bh8bFu3CoaM+PXY1wmADA= 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:to :from:subject:message-id:date:mime-version:content-type; s= default; bh=1F64emtxyaHbazodg5q3X292yDU=; b=r/aQ0CYMoOvezG3n+n8i gJ44jpLwEi44cwLfllvH7BBIomedtWCXEGYt1fOoC7VRS50x8NDH+gdAA1GZ5mwP 3zHNVRnBBkNo+tuxZ1zjGCC3GRaE0/pb0IcI1re/j8dpwEEhwRP//ioKMHY2xbp0 PSpPrirsIVD1M4nMJZY6MOc= Received: (qmail 24658 invoked by alias); 27 Apr 2018 13:59:58 -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 24643 invoked by uid 89); 27 Apr 2018 13:59:57 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.4 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=HX-HELO:sk:mail-yw, H*r:c091, H*r:180 X-HELO: mail-yw0-f182.google.com Received: from mail-yw0-f182.google.com (HELO mail-yw0-f182.google.com) (209.85.161.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 27 Apr 2018 13:59:55 +0000 Received: by mail-yw0-f182.google.com with SMTP id r202-v6so551745ywg.10 for ; Fri, 27 Apr 2018 06:59:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:to:from:subject:message-id:date :user-agent:mime-version:content-language; bh=nmPWVv++TAVYHZtWa7XahCTSU0q++v/vOHZ/5PtFaeE=; b=uOZ+61LTvxxZKmJPvIEaO03orHp91tQSkmRhOyBw040yFmT6aqfIcix3EevBFoDgCn PujUPgaR/tQjffsQHypY6MPBKvF4FRgBNEHyKebmPTJEowZBJQkPbiQ/4PO7z0o5FvMV H6XRwNgTL8V68ikT/p01ihVTaIzYK+bob3vVvEpXC2eMTaifWcYUdc7QUvsEB1tzYans Oi++kvfec0H8B1dxtyoV7QqhQgUeP43X2iV6uvQsUUJ7w3XiMwGfju3L67dmJRP31V7p pECwbEg62MiZVbbE8DTyAv05OVECw0bbmLAXL1EdeTEGSKBjQ11W9YAwP1/JAZ1hzrlD xtJw== X-Gm-Message-State: ALQs6tDe6jhNX6zbvEvZ12XYID6Ayy4jrbMNZb+c9Plcw32F6eFhuE8p +JXpH+/wcyPckbze9yn3B/U= X-Google-Smtp-Source: AB8JxZpU5Z3vw3HDig/cCag79sW5knrFU+nYNU39pMQmCgdJggb15ByrREeyzD3PtKCvdAPrLoCcTA== X-Received: by 2002:a81:70cd:: with SMTP id l196-v6mr1064474ywc.181.1524837593935; Fri, 27 Apr 2018 06:59:53 -0700 (PDT) Received: from ?IPv6:2620:10d:c0a1:1102:495f:7267:5ff:a250? ([2620:10d:c091:180::1:1d44]) by smtp.googlemail.com with ESMTPSA id b66-v6sm559005ywf.58.2018.04.27.06.59.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 27 Apr 2018 06:59:53 -0700 (PDT) To: GCC Patches From: Nathan Sidwell Subject: [C++ PATCH] cleanup 2 Message-ID: Date: Fri, 27 Apr 2018 09:59:51 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 When working on the recent ptrmem static_cast bug, I noticed convert_ptrmem could do with a bit of modernization. Thusly moved its local var decls to their assignments. nathan 2018-04-27 Nathan Sidwell * typeck.c (convert_ptrmem): Move local var decls to initialization. Index: typeck.c =================================================================== --- typeck.c (revision 259709) +++ typeck.c (working copy) @@ -6833,34 +6833,28 @@ convert_ptrmem (tree type, tree expr, bo if (TYPE_PTRDATAMEM_P (type)) { - tree delta; + tree delta = (get_delta_difference + (TYPE_PTRMEM_CLASS_TYPE (TREE_TYPE (expr)), + TYPE_PTRMEM_CLASS_TYPE (type), + allow_inverse_p, c_cast_p, complain)); - delta = get_delta_difference (TYPE_PTRMEM_CLASS_TYPE (TREE_TYPE (expr)), - TYPE_PTRMEM_CLASS_TYPE (type), - allow_inverse_p, - c_cast_p, complain); if (delta == error_mark_node) return error_mark_node; if (!integer_zerop (delta)) { - tree cond, op1, op2; - if (TREE_CODE (expr) == PTRMEM_CST) expr = cplus_expand_constant (expr); - cond = cp_build_binary_op (input_location, - EQ_EXPR, - expr, - build_int_cst (TREE_TYPE (expr), -1), - complain); - op1 = build_nop (ptrdiff_type_node, expr); - op2 = cp_build_binary_op (input_location, - PLUS_EXPR, op1, delta, - complain); + + tree cond = cp_build_binary_op (input_location, EQ_EXPR, expr, + build_int_cst (TREE_TYPE (expr), -1), + complain); + tree op1 = build_nop (ptrdiff_type_node, expr); + tree op2 = cp_build_binary_op (input_location, PLUS_EXPR, op1, delta, + complain); expr = fold_build3_loc (input_location, - COND_EXPR, ptrdiff_type_node, cond, op1, op2); - + COND_EXPR, ptrdiff_type_node, cond, op1, op2); } return build_nop (type, expr);