diff options
| author | Erik Edelmann <eedelman@gcc.gnu.org> | 2006-01-25 20:46:29 +0000 |
|---|---|---|
| committer | Erik Edelmann <eedelman@gcc.gnu.org> | 2006-01-25 20:46:29 +0000 |
| commit | 810306f2c59b89ac1596eff596ffee5354d4225c (patch) | |
| tree | 694499b865196daad78324da54b88dbc40acd07e /gcc/fortran/intrinsic.c | |
| parent | 5c45cecb25efa7898108694021f221c46429347c (diff) | |
| download | gcc-810306f2c59b89ac1596eff596ffee5354d4225c.zip gcc-810306f2c59b89ac1596eff596ffee5354d4225c.tar.gz gcc-810306f2c59b89ac1596eff596ffee5354d4225c.tar.bz2 | |
re PR fortran/25716 (FAIL: gfortran.dg/char_result_11.f90 -O (test for excess errors))
fortran/
2005-01-25 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25716
* symbol.c (free_old_symbol): New function.
(gfc_commit_symbols): Use it.
(gfc_commit_symbol): New function.
(gfc_use_derived): Use it.
* gfortran.h: Add prototype for gfc_commit_symbol.
* intrinsic.c (gfc_find_function): Search in 'conversion'
if not found in 'functions'.
(gfc_convert_type_warn): Add a symtree to the new
expression node, and commit the new symtree->n.sym.
* resolve.c (gfc_resolve_index): Make sure typespec is
properly initialized.
testsuite/
2005-01-25 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25716
* gfortran.dg/char_result_11.f90: Make it sensitive to PR
25716 on 32-bit systems too.
From-SVN: r110225
Diffstat (limited to 'gcc/fortran/intrinsic.c')
| -rw-r--r-- | gcc/fortran/intrinsic.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/gcc/fortran/intrinsic.c b/gcc/fortran/intrinsic.c index 7963eec..cc63a5f 100644 --- a/gcc/fortran/intrinsic.c +++ b/gcc/fortran/intrinsic.c @@ -711,8 +711,13 @@ find_sym (gfc_intrinsic_sym * start, int n, const char *name) gfc_intrinsic_sym * gfc_find_function (const char *name) { + gfc_intrinsic_sym *sym; + + sym = find_sym (functions, nfunc, name); + if (!sym) + sym = find_sym (conversion, nconv, name); - return find_sym (functions, nfunc, name); + return sym; } @@ -3415,6 +3420,16 @@ gfc_convert_type_warn (gfc_expr * expr, gfc_typespec * ts, int eflag, new->rank = rank; new->shape = gfc_copy_shape (shape, rank); + gfc_get_ha_sym_tree (sym->name, &new->symtree); + new->symtree->n.sym->ts = *ts; + new->symtree->n.sym->attr.flavor = FL_PROCEDURE; + new->symtree->n.sym->attr.function = 1; + new->symtree->n.sym->attr.intrinsic = 1; + new->symtree->n.sym->attr.elemental = 1; + new->symtree->n.sym->attr.pure = 1; + new->symtree->n.sym->attr.referenced = 1; + gfc_commit_symbol (new->symtree->n.sym); + *expr = *new; gfc_free (new); |
