]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/51904 (ICE on SIZE function evaluation)
authorTobias Burnus <burnus@net-b.de>
Thu, 19 Jan 2012 22:21:43 +0000 (23:21 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Thu, 19 Jan 2012 22:21:43 +0000 (23:21 +0100)
2012-01-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51904
        *expr.c (gfc_build_intrinsic_call): Also set the symtree.

2012-01-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/51904
        * gfortran.dg/intrinsic_size_2.f90: New.

From-SVN: r183314

gcc/fortran/ChangeLog
gcc/fortran/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/intrinsic_size_2.f90 [new file with mode: 0644]

index 504b5cde1ffc3624ab61c319d9426f1e753ddc49..ac998ee9c573f1426d8c4f832e440f4ab0e9329c 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-19  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/51904
+       *expr.c (gfc_build_intrinsic_call): Also set the symtree.
+
 2012-01-14  Tobias Burnus  <burnus@net-b.de>
 
        Backported from mainline
index d5784c5d395e69084419fb939f7b80ef6534855d..a4da37c20dcb9037c5880889fe9adebc703c0d06 100644 (file)
@@ -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)
index 55a861c7a25a0ff1bb2da434dd79c6608f01827a..ed5d163766e31b3f07b1200a80eb314847ce846e 100644 (file)
@@ -1,3 +1,8 @@
+2012-01-19  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/51904
+       * gfortran.dg/intrinsic_size_2.f90: New.
+
 2012-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
        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 (file)
index 0000000..6070bc2
--- /dev/null
@@ -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