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

Tobias Burnus <burnus at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
            Summary|ICE on allocation of with   |Deferred-length string
                   |deferred-length string      |wrong results with
                   |                            |character intrinsic
                   |                            |functions

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-01-28 
18:28:52 UTC ---
The problem is the line:
     allocate(name, SOURCE=repeat('x',n))

A simplified (and not ICEing) version is:
   n = 10
   name = repeat('x',n)
   name = repeat('x',4)
   name = repeat('x',n)//"123"

For the first "repeat" len(name) is 0, for the second "repear' one gets the
expected "xxxx". The third one gives "xxx".

In case of the allocate, the problem is that both
  code->expr3->ts.u.cl->backend_decl
and
  code->expr3->ts.u.cl->length
are NULL pointers. (code->expr3->expr_type is EXPR_FUNCTION)

Reply via email to