From: Tobias Burnus Date: Thu, 19 Jan 2012 22:21:43 +0000 (+0100) Subject: re PR fortran/51904 (ICE on SIZE function evaluation) X-Git-Tag: releases/gcc-4.6.3~164 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f2421b1b743fd05c4fe76724975202b20820bc7;p=thirdparty%2Fgcc.git re PR fortran/51904 (ICE on SIZE function evaluation) 2012-01-19 Tobias Burnus PR fortran/51904 *expr.c (gfc_build_intrinsic_call): Also set the symtree. 2012-01-19 Tobias Burnus PR fortran/51904 * gfortran.dg/intrinsic_size_2.f90: New. From-SVN: r183314 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 504b5cde1ffc..ac998ee9c573 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2012-01-19 Tobias Burnus + + PR fortran/51904 + *expr.c (gfc_build_intrinsic_call): Also set the symtree. + 2012-01-14 Tobias Burnus Backported from mainline diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index d5784c5d395e..a4da37c20dcb 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -4363,6 +4363,11 @@ gfc_build_intrinsic_call (const char* name, locus where, unsigned numarg, ...) result->value.function.name = name; result->value.function.isym = isym; + result->symtree = gfc_find_symtree (gfc_current_ns->sym_root, name); + gcc_assert (result->symtree + && (result->symtree->n.sym->attr.flavor == FL_PROCEDURE + || result->symtree->n.sym->attr.flavor == FL_UNKNOWN)); + va_start (ap, numarg); atail = NULL; for (i = 0; i < numarg; ++i) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 55a861c7a25a..ed5d163766e3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-01-19 Tobias Burnus + + PR fortran/51904 + * gfortran.dg/intrinsic_size_2.f90: New. + 2012-01-18 Bill Schmidt PR tree-optimization/49642 diff --git a/gcc/testsuite/gfortran.dg/intrinsic_size_2.f90 b/gcc/testsuite/gfortran.dg/intrinsic_size_2.f90 new file mode 100644 index 000000000000..6070bc21b7de --- /dev/null +++ b/gcc/testsuite/gfortran.dg/intrinsic_size_2.f90 @@ -0,0 +1,17 @@ +! { dg-do compile } +! +! PR fortran/51904 +! +! Contributed by David Sagan. +! + +call qp_draw_polyline_basic([1.0,2.0]) +contains +subroutine qp_draw_polyline_basic (x) + implicit none + real :: x(:), f + integer :: i + f = 0 + print *, size(f*x) +end subroutine +end