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



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



           What    |Removed                     |Added

----------------------------------------------------------------------------

           Keywords|                            |ice-on-invalid-code

                 CC|                            |burnus at gcc dot gnu.org



--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-10-03 
07:32:43 UTC ---

(In reply to comment #1)

> I think both programs are invalid and should be rejected.



I concur.



(In reply to comment #0)

>   vec(1) => vec(0)

>   1

> Error: Expected bounds specification for 'vec' at (1)



  R733 pointer-assignment-stmt

        is   data-pointer-object [ (bounds-spec-list) ] => data-target

        or   data-pointer-object (bounds-remapping-list ) => data-target

        or   proc-pointer-object => proc-target



with



  bounds-spec        is  lower-bound-expr :

  bounds-remapping   is  lower-bound-expr : upper-bound-expr



  C716 (R733)   If bounds-spec-list is specified, the number of bounds-specs

                shall equal the rank of data-pointer-object.

  C717 (R733)   If bounds-remapping-list is specified, the number of bounds-

                remappings shall equal the rank of data-pointer-object.



Thus, if you want to do bounds remapping, you have to specify a range, e.g.



  vec(1:1) => vec(0:0)





>   integer, pointer :: a(:)

>   integer :: b

>   a(0:0) => b



That violates C717 as the LHS is rank 1 and the RHS is scalar. But it shouldn't

give an ICE.

Reply via email to