summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2012-01-19 20:22:33 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2012-01-19 20:22:33 +0000
commit799347b4f3a31352a3d3e3797b28abc41580cdf5 (patch)
treecc369f202dad74838a38b0ba5b1231ab1703666c /gcc
parent8c1094a62cdc4bf69447af40b0780c6b4ba5492e (diff)
downloadgcc-799347b4f3a31352a3d3e3797b28abc41580cdf5.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183310 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/expr.c5
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/intrinsic_size_2.f9017
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index db01c0cfbe2..c3106a5e1b0 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/51634
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 8f04c731077..7cea780693d 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -4519,6 +4519,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 ea028e13bbe..eb1663c0e0f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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-19 Jason Merrill <jason@redhat.com>
PR c++/51889
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 00000000000..6070bc21b7d
--- /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