From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19172 invoked by alias); 23 Nov 2007 00:27:37 -0000 Received: (qmail 19156 invoked by uid 22791); 23 Nov 2007 00:27:37 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 23 Nov 2007 00:27:30 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.1) with ESMTP id lAN0RSgL001921; Thu, 22 Nov 2007 19:27:28 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [10.11.255.20]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id lAN0RS4p012333; Thu, 22 Nov 2007 19:27:28 -0500 Received: from pantani.quesejoda.com (sebastian-int.corp.redhat.com [172.16.52.221]) by pobox.corp.redhat.com (8.13.1/8.13.1) with ESMTP id lAN0RRsU008578; Thu, 22 Nov 2007 19:27:28 -0500 Received: by pantani.quesejoda.com (Postfix, from userid 500) id BDC5F11A0347; Thu, 22 Nov 2007 20:27:27 -0400 (AST) Date: Fri, 23 Nov 2007 11:38:00 -0000 From: Aldy Hernandez To: Richard Guenther , fortran@gcc.gnu.org Cc: Andrew Pinski , Diego Novillo , gcc-patches@gcc.gnu.org Subject: Re: [FORTRAN mainline] dereference POINTER_PLUS_EXPR check (was tuples) Message-ID: <20071123002727.GA16608@redhat.com> References: <20071121204635.GA7204@redhat.com> <4744A197.1060701@google.com> <20071121215235.GA11077@redhat.com> <84fc9c000711211357w7a2587d2n663dd561845e4e1c@mail.gmail.com> <20071121225800.GA5508@redhat.com> <84fc9c000711211525h37554477yf567a8265f09d59@mail.gmail.com> <20071122005837.GA7171@redhat.com> <20071122172301.GA17740@redhat.com> <84fc9c000711220948p74bf7bb8he63f95baf9ba38f1@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <84fc9c000711220948p74bf7bb8he63f95baf9ba38f1@mail.gmail.com> User-Agent: Mutt/1.5.17 (2007-11-01) 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 X-SW-Source: 2007-11/txt/msg01204.txt.bz2 > It should use the type of DEST, all pointers are trivially convertible > to void *, > which is the formal argument of memset (in the ChangeLog you have memmove). > > Not that it makes a big difference here (in the end we try to be type-exact in > one expression tree, but as the expression result type will vanish with tuples, > there won't a difference for both cases). Fixed below. > I wonder if the problem you see has been fixed with the fix for PR31608 which > went in a few days ago? No. Latest mainline still exhibited the same problem. The P_P_E was still wrong. I know Tobias approved the patch, but let me know if this updated one using the type of [dest] is what you wanted. No regressions on fortran tests. Aldy * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a memset. --- trans-expr.c (revision 130355) +++ trans-expr.c (local) @@ -2701,7 +2701,7 @@ gfc_trans_string_copy (stmtblock_t * blo tmp3 = build_call_expr (built_in_decls[BUILT_IN_MEMMOVE], 3, dest, src, slen); - tmp4 = fold_build2 (POINTER_PLUS_EXPR, pchar_type_node, dest, + tmp4 = fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (dest), dest, fold_convert (sizetype, slen)); tmp4 = build_call_expr (built_in_decls[BUILT_IN_MEMSET], 3, tmp4,