From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16562 invoked by alias); 2 Oct 2008 15:22:00 -0000 Received: (qmail 14102 invoked by uid 48); 2 Oct 2008 15:20:34 -0000 Date: Thu, 02 Oct 2008 15:22:00 -0000 Message-ID: <20081002152034.14101.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug fortran/35680] [4.3/4.4 regression] ICE on invalid transfer in variable declaration In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "pault at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-10/txt/msg00172.txt.bz2 ------- Comment #10 from pault at gcc dot gnu dot org 2008-10-02 15:20 ------- (In reply to comment #9) As usual, the DEC manual puts in succinctly: If MOLD is an array and SIZE is omitted, the result is a rank-one array. Its size is the smallest that is possible to hold all of SOURCE". This is what I have now implemented (and by the way, what I implemented for simplify_transfer and the trans-intrinsic version....). However, "If the physical representation of the result is smaller than SOURCE, the result contains the right-most bits of SOURCE's bit pattern. is a killer at this stage in the compilation, since the physical reprentation of the result is unknown. I might signal, I guess, that it is the actual argument of an inquiry function.... Anyway, the logic is there, I just have to figure out where to deploy it. Otherwise, I break transfer_array_intrinsic_2.f90, which has an assignment from an over-large 'transfer' result. *sigh* Paul -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35680