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

--- Comment #34 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-15 
12:54:36 UTC ---
(In reply to comment #24)
>      call hello(ceiling(11*rnd),string)

That should be floor or "10" - otherwise, it can give "11" which is too large.
(Or and better: Change the "10" to "11" below then "hello worl(d)" fits into
the string.)


>     integer,intent(in)::n
>     character(10)::helloworld="hello world"
>     string=helloworld(:n)                      ! Does not work.

Interestingly, it works if one does not use "n" as argument but sets it in the
procedure. One then gets code like:
  *string =  ... __builtin_malloc ( ... MAX_EXPR <n, 0> )

However, if "n" is passed as dummy argument, one has:
  integer(kind=4) D.1865;
  *string = ... __builtin_malloc ( ... MAX_EXPR <D.1865, 0> )
  D.1865 = *nnnn;

Or in other words: The order is wrong.

Reply via email to