http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55199
--- Comment #6 from janus at gcc dot gnu.org 2012-11-04 15:46:38 UTC ---
(In reply to comment #5)
> Here is an improved patch, which hopefully should be free of testsuite
> regressions (will re-check):
It is. However, I think there is a better way to fix this:
Index: gcc/fortran/primary.c
===================================================================
--- gcc/fortran/primary.c (revision 193133)
+++ gcc/fortran/primary.c (working copy)
@@ -1975,6 +1975,8 @@ gfc_match_varspec (gfc_expr *primary, int equiv_fl
gcc_assert (primary->symtree->n.sym->attr.referenced);
if (tbp_sym)
primary->ts = tbp_sym->ts;
+ else
+ gfc_clear_ts (&primary->ts);
m = gfc_match_actual_arglist (tbp->n.tb->subroutine,
&primary->value.compcall.actual);
This prevents the EXPR_COMPCALL from having the wrong typespec is the first
place (and resets it to BT_UNKNOWN instead).
I will commit this as obvious after regtesting.