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

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-09-29 
12:44:16 UTC ---
The problem is that with front-end optimization, the forall body is changed
from:
     timeSteps(iTime)=ratio**(dble(iTime)-0.5d0)-ratio**(dble(iTime)-1.5d0)
which is a simple assignment (EXEC_ASSIGN) to a block of the form
  block
    tmp = dble(iTime)
    timeSteps(iTime)=ratio**(tmp-0.5) - ratio**(tmp-1.5)
  end block
or something similar (in any case it is an EXEC_BLOCK); however,
gfc_trans_forall_1 only handles: EXEC_ASSIGN, EXEC_WHERE, EXEC_POINTER_ASSIGN,
EXEC_FORALL and EXEC_ASSIGN_CALL.

That matches F2008 (cf. below), though one could allow BLOCK internally.
  R756 forall-body-construct   is  forall-assignment-stmt
                               or  where-stmt
                               or  where-construct
                               or  forall-construct
                               or  forall-stmt
  R757 forall-assignment-stmt  is  assignment-stmt
                               or  pointer-assignment-stmt

Reply via email to