[Bug fortran/50684] [4.6/4.7 Regression] Incorrect error for move_alloc on element inside intent(in) pointer

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Oct 12 21:42:00 GMT 2011


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

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2011-10-12 21:42:02 UTC ---
(In reply to comment #4)
> But should it be rejected? move_alloc does not modify the association
> status of "dt" - just of "dt%VALUE". Thus, I believe this test case is
> valid and, hence, gfortran should not reject it.

While I still think that the program is valid, I just realized that that is not
what I wrote in comment 1 - there I claimed that it is invalid.

I also realized that one shouldn't need to walk the expression (contrary to
intent(in) for nonpointer variables). Your simple

+      && !(e->symtree->n.sym->attr.pointer && e->ref))

should do. Actually, I do not quite understand why it shows an error with the
patch:
  !(attr.ptr && e->ref)
should be false as attr.ptr is true and e->ref it not NULL and hence true. Thus
the parentheses should be true, the ! makes it false. Thus, how can be there an
error message?



More information about the Gcc-bugs mailing list