From patchwork Tue Oct 17 15:41:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nathan Sidwell X-Patchwork-Id: 827094 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-464343-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="pM88h3DK"; 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 3yGfYf5vFGz9t32 for ; Wed, 18 Oct 2017 02:41:25 +1100 (AEDT) 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=oAt/WpBJL5IY+nUVO973UcHZzjMh2u9T2pWjFAl+b5kxlLJC2c CUfOnUEvjMA/eCHvfm6IS8BjB0/Wo5jjHBT6Nhc9ro1Lb+xOs1QTcsjC0BQPtrDP B1shFkkviM1XUrpjo+i7ZdnZ90BOtqfo/4/GFP+ENi/t9B6+egjnkTtjE= 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=mJYlKidUAFbkw2Y4CR6e4mKwDa8=; b=pM88h3DKlGcY6FtkOqvY W7xPvHLytitW4X5PLVLrn3JY+8ZhictLlVcaO+4kUeWoSUXC7IWDePDMsFP8n1JV 2u3vtu0Pqz/Usav7UGc7dm7ZnHiUmhme13BvZd9AJ5Y0RsWXs37Lj7YSlXtoPMNM 7yQQKmLBoYBzQApG1cp6pCk= Received: (qmail 113965 invoked by alias); 17 Oct 2017 15:41:18 -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 113955 invoked by uid 89); 17 Oct 2017 15:41:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1789 X-HELO: mail-pg0-f41.google.com Received: from mail-pg0-f41.google.com (HELO mail-pg0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 17 Oct 2017 15:41:16 +0000 Received: by mail-pg0-f41.google.com with SMTP id b192so1722485pga.2 for ; Tue, 17 Oct 2017 08:41:16 -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=/N2BpY6i0aK2yUdxYumd8y7Hqfk8zMdDcnqXG9as+RQ=; b=NBe95vKhzpjuYrGOGbzAjscIjZ22LkarLB3CsggQALWp4oy3JM/c2P8Mr2Vjc1TJx9 o8MX6IyLeKr+HE0OYwLg7vWqTWHB8fvpmfCu5xKB/ZSjjYcPDzuUf/ZV3kF7Nw1EI5SI /J5+nMc+fBsKs+TKX9ZWtLOZJedkuPRod4jqIp7v3YWU7O0BoaoBCQE06u9je6BPGruR J0ZqW4pU/8dUPaLp+LAzym15ULKcxnID1pQHGaQUHRoNTKoWy4B1EpNyOb4YDTokR7nB Tc/lUk0vaIypbYUAWMG0eX9/I7mJJzTsB2F8mFTe/MonZxt7iPSLuD5OhQ0MwHcy+iZk zToA== X-Gm-Message-State: AMCzsaU9sUhF+AaXbg6sfBLrUGvoi32Jw15iIWi25AQGOEiL61NUeH5f N/JP5mWEXzAvcJ+Ukhe6vdU= X-Google-Smtp-Source: AOwi7QCc67ON+J5M2bhmQbuhq9I1WQXb3G4zyar/CEjU5WjJ8sC11xjBDoQFgKAxWZfGRiCgXHHjEw== X-Received: by 10.159.211.7 with SMTP id bc7mr12607146plb.425.1508254874790; Tue, 17 Oct 2017 08:41:14 -0700 (PDT) Received: from ?IPv6:2620:10d:c082:1055:31e1:4d57:79ff:da5a? ([2620:10d:c090:200::5:301b]) by smtp.googlemail.com with ESMTPSA id e18sm9791311pfi.57.2017.10.17.08.41.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Oct 2017 08:41:14 -0700 (PDT) To: GCC Patches From: Nathan Sidwell Subject: [PATCH, middle-end/82577] Fix DECL_ASSEMBLER_NAME ICE Message-ID: <322bb35a-af84-ae6b-7a95-c6f464aed8bb@acm.org> Date: Tue, 17 Oct 2017 11:41:12 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 This fixes a new ICE I caused by breaking out HAS_DECL_ASSEMBLER_NAME_P from DECL_ASSEMBLER_NAME_SET_P. alias.c needs to check it. As it's doing explicit HAS and SET checking, it might as well use the RAW accessor too. Committing as obvious. nathan 2017-10-17 Nathan Sidwell gcc/ PR middle-end/82577 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P, use DECL_ASSEMBLER_NAME_RAW. gcc/testsuite/ PR middle-end/82577 * g++.dg/opt/pr82577.C: New. Index: alias.c =================================================================== --- alias.c (revision 253818) +++ alias.c (working copy) @@ -2047,13 +2047,15 @@ compare_base_decls (tree base1, tree bas return 1; /* If we have two register decls with register specification we - cannot decide unless their assembler name is the same. */ + cannot decide unless their assembler names are the same. */ if (DECL_REGISTER (base1) && DECL_REGISTER (base2) + && HAS_DECL_ASSEMBLER_NAME_P (base1) + && HAS_DECL_ASSEMBLER_NAME_P (base2) && DECL_ASSEMBLER_NAME_SET_P (base1) && DECL_ASSEMBLER_NAME_SET_P (base2)) { - if (DECL_ASSEMBLER_NAME (base1) == DECL_ASSEMBLER_NAME (base2)) + if (DECL_ASSEMBLER_NAME_RAW (base1) == DECL_ASSEMBLER_NAME_RAW (base2)) return 1; return -1; } Index: testsuite/g++.dg/opt/pr82577.C =================================================================== --- testsuite/g++.dg/opt/pr82577.C (revision 0) +++ testsuite/g++.dg/opt/pr82577.C (working copy) @@ -0,0 +1,17 @@ +// { dg-additional-options "-O2" } +// PR c++/82577 ICE when optimizing + +class a { +public: + int *b(); +}; +struct c { + int d; + a e; +} f; +void fn1(register c *g) { + register int *h; + do + (h) = g->e.b() + (g)->d; + while (&f); +}