This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/65223] New: Regresion on elemental type-bound procedure's passed object with INTENT(OUT)


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

            Bug ID: 65223
           Summary: Regresion on elemental type-bound procedure's passed
                    object with INTENT(OUT)
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jwmwalrus at gmail dot com

The code below compiles just fine with gfortran 4.9, but throws an error with
gfortran 5.0:

module storage_mod
    implicit none
    private
    save

    type, public :: StorageClass
        character(20) :: name = 'default'
    contains
        procedure :: destroy => destroyStorage
    end type
contains
    elemental subroutine destroyStorage(this)
        class(StorageClass), intent(OUT) :: this
    end subroutine
end module storage_mod



The output I get is:

$ ll `which gfortran`
lrwxrwxrwx 1 root root 12 Oct 18 04:03 /usr/bin/gfortran -> gfortran-4.9*
$ gfortran -c storage_mod.f90 
$ gfortran-5.0 -c storage_mod.f90 
storage_mod.f90:12:44:

     elemental subroutine destroyStorage(this)
                                            1
Error: INTENT(OUT) argument 'this' of pure procedure 'destroystorage' at (1)
may not be polymorphic



The error goes away by removing the ELEMENTAL attribute, so it seems like a
regression on valid code.

The compiler and system information is:

$ lsb_release -rd
Description:    Debian GNU/Linux 8.0 (jessie)
Release:    8.0

$ gfortran-5.0 -v
Using built-in specs.
COLLECT_GCC=gfortran-5.0
COLLECT_LTO_WRAPPER=/usr/lib/gcc-snapshot/libexec/gcc/x86_64-linux-gnu/5.0.0/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 20150211-1'
--with-bugurl=file:///usr/share/doc/gcc-snapshot/README.Bugs
--enable-languages=c,ada,c++,java,go,fortran,objc,obj-c++
--prefix=/usr/lib/gcc-snapshot --enable-shared --enable-linker-build-id
--disable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --with-default-libstdcxx-abi=c++98
--enable-gnu-unique-object --disable-vtable-verify --enable-plugin
--with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5.0-snap-amd64/jre
--enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5.0-snap-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5.0-snap-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic
--disable-werror --enable-checking=yes --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.0.0 20150211 (experimental) [trunk revision 220605] (Debian
20150211-1)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]