From patchwork Fri Sep 20 06:42:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 1165045 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-509334-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=suse.de Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="uOwUla7i"; 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 46ZPK50ccMz9s4Y for ; Fri, 20 Sep 2019 16:42:14 +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:date :from:to:subject:message-id:mime-version:content-type; q=dns; s= default; b=U0KVxcdJQMSNxB3VvQCWJVmNhtpElOdJElN8wW8NJM/oOlNI5DOUN yLsTADrY+NcHpx4mWfJSqUR0DkaP+2KnBpjAfNydM47M0M5Sd9rzhj2X2n3nMOK2 viUz8+To7UMofspPijnkp9zx4/FPwMSCHxbfiicZb+NngEtXlUyksQ= 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:subject:message-id:mime-version:content-type; s= default; bh=oQ1Dq7i4rWKkPftEVjS0t+BGlo0=; b=uOwUla7iNgb4ONFW2nP0 lBtTnz6g/MeAdFhVITVozMZoKoNzUEv6CQQCDxhzM2TxynMUIN968/hbojUyGyuK IW/9Lzfb+XDi4jXpu402L0aY3/hMd/tHHI+gK0iddJw4xdeDPmp3tq6b2yaklDA8 wcam+QB9x29N6N8OXH/+6cw= Received: (qmail 4760 invoked by alias); 20 Sep 2019 06:42:06 -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 4750 invoked by uid 89); 20 Sep 2019 06:42:06 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-10.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, SPF_PASS autolearn=ham version=3.3.1 spammy=smoking, gun, HX-Languages-Length:1052 X-HELO: mx1.suse.de Received: from mx2.suse.de (HELO mx1.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 20 Sep 2019 06:42:05 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1CE9DABF6 for ; Fri, 20 Sep 2019 06:42:03 +0000 (UTC) Date: Fri, 20 Sep 2019 08:42:02 +0200 (CEST) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] Fix PR91767 Message-ID: User-Agent: Alpine 2.21 (LSU 202 2017-01-01) MIME-Version: 1.0 regno_reg_rtx[] is a smoking gun with C++ and references. Committed as obvious. Richard. 2019-09-20 Richard Biener PR target/91767 * config/i386/i386-features.c (general_scalar_chain::convert_registers): Ensure there's a sequence point between allocating the new register and passing a reference to a reg via regno_reg_rtx. Index: gcc/config/i386/i386-features.c =================================================================== --- gcc/config/i386/i386-features.c (revision 275988) +++ gcc/config/i386/i386-features.c (working copy) @@ -1210,7 +1210,10 @@ general_scalar_chain::convert_registers bitmap_iterator bi; unsigned id; EXECUTE_IF_SET_IN_BITMAP (defs_conv, 0, id, bi) - defs_map.put (regno_reg_rtx[id], gen_reg_rtx (smode)); + { + rtx chain_reg = gen_reg_rtx (smode); + defs_map.put (regno_reg_rtx[id], chain_reg); + } EXECUTE_IF_SET_IN_BITMAP (insns_conv, 0, id, bi) for (df_ref ref = DF_INSN_UID_DEFS (id); ref; ref = DF_REF_NEXT_LOC (ref)) if (bitmap_bit_p (defs_conv, DF_REF_REGNO (ref)))