From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18669 invoked by alias); 2 Aug 2005 10:57:16 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 18637 invoked by uid 48); 2 Aug 2005 10:57:10 -0000 Date: Tue, 02 Aug 2005 10:57:00 -0000 Message-ID: <20050802105710.18636.qmail@sourceware.org> From: "steven at gcc dot gnu dot org" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20050416225125.21063.guillemborrell@yahoo.es> References: <20050416225125.21063.guillemborrell@yahoo.es> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug fortran/21063] ICE in gfc_conv_ss_descriptor, at fortran/trans-array.c:1224 after using maxloc function X-Bugzilla-Reason: CC X-SW-Source: 2005-08/txt/msg00167.txt.bz2 List-Id: ------- Additional Comments From steven at gcc dot gnu dot org 2005-08-02 10:57 ------- We die while looking for an array descriptor for the vector subscript: /* For vector array subscripts we want the size of the vector. */ vecss = ss; while (vecss->data.info.ref->u.ar.dimen_type[dim] == DIMEN_VECTOR) { vecss = vecss->data.info.subscript[dim]; gcc_assert (vecss && vecss->type == GFC_SS_VECTOR); /* Get the descriptors for the vector subscripts as well. */ if (!vecss->data.info.descriptor) gfc_conv_ss_descriptor (&loop->pre, vecss, !loop->array_parameter); dim = vecss->data.info.dim[0]; } But gfc_conv_ss_descriptor starts with: static void gfc_conv_ss_descriptor (stmtblock_t * block, gfc_ss * ss, int base) { gfc_se se; tree tmp; /* Get the descriptor for the array to be scalarized. */ gcc_assert (ss->expr->expr_type == EXPR_VARIABLE); gfc_init_se (&se, NULL); That assert triggers. For my small test case, the expr_type is EXPR_ARRAY and for the maxloc test case it is EXPR_FUNCTION. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21063