https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117430

--- Comment #4 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
If I had just scrolled down in resolve.cc a few more hunks, eye roll:

$ gfc -pedantic zorig.f90 
zorig.f90:45:32:

   45 |       write(*,*) "B:", self%cptr
      |                                1
Warning: GNU Extension: Data transfer element at (1) cannot have PRIVATE
components
zorig.f90:34:61:

   34 |       if (.not. self%cptr_invalid) write(*,*) "A:", self%cptr
      |                                                             1
Warning: GNU Extension: Data transfer element at (1) cannot have PRIVATE
components

and

$ gfc -std=f2008 zorig.f90 
zorig.f90:45:32:

   45 |       write(*,*) "B:", self%cptr
      |                                1
Error: GNU Extension: Data transfer element at (1) cannot have PRIVATE
components
zorig.f90:34:61:

   34 |       if (.not. self%cptr_invalid) write(*,*) "A:", self%cptr
      |                                                             1
Error: GNU Extension: Data transfer element at (1) cannot have PRIVATE
components
zorig.f90:58:8:

   58 |    use FinalizerTestModule
      |        1
Fatal Error: Cannot open module file ‘finalizertestmodule.mod’ for reading at
(1): No such file or directory
compilation terminated.

Now the question is, do we tweak the existing handling of this or leave it
alone. I think this is an example where allowing non standard stuff can bite
us. I did spend some time here that could have been avoided if we did the right
thing.

Reply via email to