From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108835 invoked by alias); 3 Jan 2018 16:46:01 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 108809 invoked by uid 89); 3 Jan 2018 16:46:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:969 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; Wed, 03 Jan 2018 16:45:59 +0000 Received: by mail-yw0-f182.google.com with SMTP id r205so757726ywb.3 for ; Wed, 03 Jan 2018 08:45:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=AK4n8AeIlG/5jIIHRDcXSwHHhoa4pn2PZ5RpPqzhbDM=; b=MzLbpsBhE2RcNeMbMMxS1gBT1uTKZxanufdGCs0a89Tom8BGsJ1Hzf2tSsR9liOqUt jpDYLMhaKDRLddc5PSukrvpqDp5JlILpa1S1ayU1wVyGgjtLdnwRk+ZibSwoo+Cj4tt/ BPg4QgAviUXmb/A9vrsnGq4JjgpG2fpHVQP21BGYVuceiKHn6xt3TI5tWsq+Vmecf+7K te/SNIum4boBubD4w/8CTBGZ/8G1PQWTBKg8nenG4cmBfv57Be/0lLpdIvwpv/W+nqRK XAzg3SRIR7XeeCGEO3n1xAVHbELEiDyk5HfyfjiIWwDmu/no+QKR5WH+YHBDthFAaMxw q8pA== X-Gm-Message-State: AKGB3mJ0vGpJbXVuL5pCBFyHKtfPFmpwEewUod6aYg5mIRmD4R6Dbwli I850RDyqan84jZq4nqd5UJk= X-Google-Smtp-Source: ACJfBosBHVLiYl/mASfaOd70PPTO0LupGnt6yKlVJ6lIU14iat53IkWEaMlLKJdR0VuRaHbcQDSjPg== X-Received: by 10.13.232.148 with SMTP id r142mr1796731ywe.223.1514997957588; Wed, 03 Jan 2018 08:45:57 -0800 (PST) Received: from ?IPv6:2620:10d:c0a3:20fb:7500:e7fb:4a6f:2254? ([2620:10d:c091:200::2bbe]) by smtp.googlemail.com with ESMTPSA id l24sm547021ywk.21.2018.01.03.08.45.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jan 2018 08:45:56 -0800 (PST) Subject: Re: C++ PATCH to fix ICE with vector expr folding (PR c++/83659) To: Marek Polacek , GCC Patches , Jason Merrill Cc: Richard Sandiford References: <20180103163107.GF23422@redhat.com> From: Nathan Sidwell Message-ID: Date: Wed, 03 Jan 2018 16:46:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: <20180103163107.GF23422@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2018-01/txt/msg00153.txt.bz2 On 01/03/2018 11:31 AM, Marek Polacek wrote: > Here we are crashing because cxx_fold_indirect_ref got a POINTER_PLUS_EXPR > with offset > signed HOST_WIDE_INT and we tried to convert it to sHWI. > > The matching code in fold_indirect_ref_1 uses uHWIs so I've followed suit. > But that code now also uses poly_uint64 and I'm not sure if any of the > constexpr.c code should use it, too. But this patch fixes the ICE. This doesn't look right to me, but it doesn't help that the test case invokes UB. > +typedef int V __attribute__ ((__vector_size__ (16))); > +V a; > + > +int > +main () > +{ > + reinterpret_cast (&a)[-1] += 1; > +} one could make this code well formed with (I think) typedef int V __attribute__ ((__vector_size__ (16))); V a[2]; int main () { return reinterpret_cast (&a[1])[-1]; } That should access the final element of the a[0] vector. nathan -- Nathan Sidwell