------- Comment #8 from steven at gcc dot gnu dot org 2005-11-07 23:29 -------
We get to "check_substring:" in match_varspec:
PROGRAM P
IMPLICIT CHARACTER*8 (Y)
YLOCAL='A'
YBTABLE=YLOCAL(1:2)
END
check_substring:
if (primary->ts.type == BT_CHARACTER)
{
switch (match_substring (primary->ts.cl, equiv_flag, &substring))
{
case MATCH_YES:
if (tail == NULL)
primary->ref = substring;
But at this point, while we have matched YLOCAL in the second assignment, we
still haven't picked up a type for it. So primary->ts.type == BT_UNKNOWN and
we never even try to match the substring.
I'm not sure if YLOCAL should have just picked up a type earlier. Thoughts,
Tobi?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24643