aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/expr.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-01-19 21:22:33 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-01-19 21:22:33 +0100
commit8e19c582b18e18030c172cca406b5607114f80cc (patch)
treecc369f202dad74838a38b0ba5b1231ab1703666c /gcc/fortran/expr.c
parent58b3ebf2df0eb71597956f6ac3067fa77f6162b5 (diff)
downloadgcc-8e19c582b18e18030c172cca406b5607114f80cc.zip
gcc-8e19c582b18e18030c172cca406b5607114f80cc.tar.gz
gcc-8e19c582b18e18030c172cca406b5607114f80cc.tar.bz2
re PR fortran/51904 (ICE on SIZE function evaluation)
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: r183310
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r--gcc/fortran/expr.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index 8f04c73..7cea780 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)