From patchwork Thu Feb 2 21:04:49 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tobias Burnus X-Patchwork-Id: 139218 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id B96E1104785 for ; Fri, 3 Feb 2012 08:05:12 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1328821514; h=Comment: DomainKey-Signature:Received:Received:Received:Received: Message-ID:Date:From:User-Agent:MIME-Version:To:Subject: Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:Sender:Delivered-To; bh=s7c7plk QTehP2WF4Q71o90+jWnw=; b=f7xdtlg5zXFxTzwQwiXgup/Q94x9+WAO+bnVvAP 02Z5BqUJkXsOasi7ff4GJG9BKnoyR9pRnAGochEWGLQngyylWHKoT5ODG6Ar1YIi qwY8PDxnz140O07AsIHZk5WNvqAbZw9+BKyWOba9m7uuIU316cz9SVwqZNXP0STR Whs4= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:Subject:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=VgmXaq/hmu5w2RtwtCy8SnUtM/2faqOV40VmpVufQQHKY7foTqGK5TJegWWODy IKZqnCSMDamXAJP4CMC4itqNXnkDYeKhEavKD/TUzcZY0uYBsfxvZJDD8cMH+I9U ywsTvq1Dv6/qMQ+LRV1XaaWcZpzgpndqaCHAS8uWtzu0Q=; Received: (qmail 10359 invoked by alias); 2 Feb 2012 21:05:06 -0000 Received: (qmail 10343 invoked by uid 22791); 2 Feb 2012 21:05:05 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mx02.qsc.de (HELO mx02.qsc.de) (213.148.130.14) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 02 Feb 2012 21:04:50 +0000 Received: from [192.168.178.22] (port-92-204-82-151.dynamic.qsc.de [92.204.82.151]) by mx02.qsc.de (Postfix) with ESMTP id 39E9A1DAA5; Thu, 2 Feb 2012 22:04:49 +0100 (CET) Message-ID: <4F2AFA71.9020408@net-b.de> Date: Thu, 02 Feb 2012 22:04:49 +0100 From: Tobias Burnus User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111220 Thunderbird/9.0 MIME-Version: 1.0 To: gcc patches , gfortran Subject: [Patch, Fortran] PR 52093 - fix simplification of SIZE((x)) 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 Dear all, I have committed the attached patch as obvious (Rev.183848) - after building and regtesting on x86-64-linux. I intent to backport it to 4.6 soon. (It's a regression.) Tobias 2012-02-02 Tobias Burnus PR fortran/52093 * simplify.c (gfc_simplify_size): Handle INTRINSIC_PARENTHESES. 2012-02-02 Tobias Burnus PR fortran/52093 * gfortran.dg/shape_7.f90: New. Index: gcc/fortran/simplify.c =================================================================== --- gcc/fortran/simplify.c (Revision 183846) +++ gcc/fortran/simplify.c (Arbeitskopie) @@ -5541,6 +5541,7 @@ gfc_simplify_size (gfc_expr *array, gfc_expr *dim, case INTRINSIC_NOT: case INTRINSIC_UPLUS: case INTRINSIC_UMINUS: + case INTRINSIC_PARENTHESES: replacement = array->value.op.op1; break; Index: gcc/testsuite/gfortran.dg/shape_7.f90 =================================================================== --- gcc/testsuite/gfortran.dg/shape_7.f90 (Revision 0) +++ gcc/testsuite/gfortran.dg/shape_7.f90 (Arbeitskopie) @@ -0,0 +1,32 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-original" } +! +! PR fortran/52093 +! +! Contributed by Mohammad Rahmani +! + +Program Main + Implicit None + Integer:: X(2,2) + Integer:: X2(7:11,8:9) + + if (size((X)) /= 4) call abort () + if (any (Shape((X)) /= [2,2])) call abort () + if (any (lbound((X)) /= [1,1])) call abort () + if (any (ubound((X)) /= [2,2])) call abort () + + if (size(X2) /= 10) call abort () + if (any (Shape(X2) /= [5,2])) call abort () + if (any (lbound(X2) /= [7,8])) call abort () + if (any (ubound(X2) /= [11,9])) call abort () + + if (size((X2)) /= 10) call abort () + if (any (Shape((X2)) /= [5,2])) call abort () + if (any (lbound((X2)) /= [1,1])) call abort () + if (any (ubound((X2)) /= [5,2])) call abort () +End Program Main + +! { dg-final { scan-tree-dump-times "abort" 0 "original" } } +! { dg-final { cleanup-tree-dump "original" } } +