From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 40265 invoked by alias); 17 Feb 2017 11:01:03 -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 40197 invoked by uid 89); 17 Feb 2017 11:01:02 -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,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1339, nonbuiltins, EAF_NOESCAPE, eaf_noescape X-HELO: mx2.suse.de Received: from mx2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 17 Feb 2017 11:00:52 +0000 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 52934ACB0 for ; Fri, 17 Feb 2017 11:00:50 +0000 (UTC) Date: Fri, 17 Feb 2017 11:32:00 -0000 From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] Fix PR79547 In-Reply-To: Message-ID: References: User-Agent: Alpine 2.20 (LSU 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-SW-Source: 2017-02/txt/msg01103.txt.bz2 On Fri, 17 Feb 2017, Marc Glisse wrote: > On Fri, 17 Feb 2017, Richard Biener wrote: > > > On Thu, 16 Feb 2017, Richard Biener wrote: > > > > > > > > I am testing the following patch for PR79547. Those builtins do not > > > return anything that can be used to re-construct the pointer(s) passed > > > to them. > > > > > > Queued for GCC 8. > > > > Actually we need calluse constraints. Thus adjusted as follows. > > > > Richard. > > > > 2017-02-17 Richard Biener > > > > PR tree-optimization/79547 > > * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): > > Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp, > > bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p > > without any constraints. > > We have EAF_NOESCAPE that we are using for non-builtins, though it probably > gets little use there. Would it make sense to use it here as well, or would > that be pointless? EAF_NOESCAPE doesn't capture what we want here -- for pure and const functions arguments already don't escape in EAF_NOESCAPEs sense it's just that EAF_NOESCAPE doesn't cover "escaping" through the return value. We do not have sth like ERF_RETURNS_NO_ARG. Generally all explicitely handled builtins do not need any further fn-spec attributes added in builtins.def. Richard.