[Bug fortran/33254] Diagnose different string lengths in array constructors at run time

dominiq at lps dot ens dot fr gcc-bugzilla@gcc.gnu.org
Sun Oct 21 20:05:00 GMT 2007



------- Comment #14 from dominiq at lps dot ens dot fr  2007-10-21 20:05 -------
Now I understand the strange result I reported in comment #5. What is happening
is that there is a second nonprintable character. If I redirect the output to a
file I see it (in general ^@).

>From what I understand of the code the substring x(1:len(trim(x))) is not
computed correctly by:

          if (ref->u.ss.start->expr_type != EXPR_CONSTANT
              || ref->u.ss.end->expr_type != EXPR_CONSTANT)
            break;

probably not computed at all, as noticed by Tobias Schlüter in the patch in

http://gcc.gnu.org/ml/fortran/2007-10/msg00212.html

However get_array_ctor_all_strlen (block, expr, len); leads to ICE's. I assume
that there is somewhere a piece of code able to compute the length of
x(1:len(trim(x))), but I did not find it.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33254



More information about the Gcc-bugs mailing list