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

            Bug ID: 60853
           Summary: Failure to disambiguate generic with unlimited
                    polymorphic
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: Thomas.L.Clune at nasa dot gov

Created attachment 32609
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32609&action=edit
F90 reproducer

The attached reproducer shows the compiler failing to disambiguate two
type-bound procedures. TKR should disambiguate these procedures, as one acts on
a scalar while the other acts on a 1D array.   Not that if "assignment(=)" is
replaced by something else, e.g. "copy", then the code is accepted.  (Possibly
I've missed something about implied ELEMENTAL in assignment?   But other
compilers do accept this code.)

Details for my environment:


gfortran -c -v -save-temps unlimitePolymorphicGeneric.F90
Using built-in specs.
COLLECT_GCC=gfortran
Target: x86_64-apple-darwin12
Configured with:
/opt/local/var/macports/build/_opt_mports_dports_lang_gcc49/gcc49/work/gcc-4.9-20140406/configure
--prefix=/opt/local --build=x86_64-apple-darwin12
--enable-languages=c,c++,objc,obj-c++,fortran,java
--libdir=/opt/local/lib/gcc49 --includedir=/opt/local/include/gcc49
--infodir=/opt/local/share/info --mandir=/opt/local/share/man
--datarootdir=/opt/local/share/gcc-4.9 --with-local-prefix=/opt/local
--with-system-zlib --disable-nls --program-suffix=-mp-4.9
--with-gxx-include-dir=/opt/local/include/gcc49/c++/ --with-gmp=/opt/local
--with-mpfr=/opt/local --with-mpc=/opt/local --with-cloog=/opt/local
--enable-cloog-backend=isl --disable-cloog-version-check
--enable-stage1-checking --disable-multilib --enable-lto
--enable-libstdcxx-time --with-as=/opt/local/bin/as --with-ld=/opt/local/bin/ld
--with-ar=/opt/local/bin/ar --with-bugurl=https://trac.macports.org/newticket
--with-pkgversion='MacPorts gcc49 4.9-20140406_0'
Thread model: posix
gcc version 4.9.0 20140406 (experimental) (MacPorts gcc49 4.9-20140406_0) 
COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.8.5' '-c' '-v' '-save-temps'
'-mtune=core2'
 /opt/local/libexec/gcc/x86_64-apple-darwin12/4.9.0/f951
unlimitePolymorphicGeneric.F90
-cpp=/var/folders/n1/j8dsqkvd1935f8myzbps0b6c0ytd28/T//ccVIYsF4.f90 -quiet -v
-D__DYNAMIC__ unlimitePolymorphicGeneric.F90 -fPIC -quiet -dumpbase
unlimitePolymorphicGeneric.F90 -mmacosx-version-min=10.8.5 -mtune=core2
-auxbase unlimitePolymorphicGeneric -version -fintrinsic-modules-path
/opt/local/lib/gcc49/gcc/x86_64-apple-darwin12/4.9.0/finclude -o
unlimitePolymorphicGeneric.s
GNU Fortran (MacPorts gcc49 4.9-20140406_0) version 4.9.0 20140406
(experimental) (x86_64-apple-darwin12)
    compiled by GNU C version 4.9.0 20140406 (experimental), GMP version 6.0.0,
MPFR version 3.1.1-p2, MPC version 1.0.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring nonexistent directory
"/opt/local/lib/gcc49/gcc/x86_64-apple-darwin12/4.9.0/../../../../../x86_64-apple-darwin12/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/local/lib/gcc49/gcc/x86_64-apple-darwin12/4.9.0/finclude
 /opt/local/lib/gcc49/gcc/x86_64-apple-darwin12/4.9.0/include
 /opt/local/include
 /opt/local/lib/gcc49/gcc/x86_64-apple-darwin12/4.9.0/include-fixed
 /usr/include
End of search list.
GNU Fortran (MacPorts gcc49 4.9-20140406_0) version 4.9.0 20140406
(experimental) (x86_64-apple-darwin12)
    compiled by GNU C version 4.9.0 20140406 (experimental), GMP version 6.0.0,
MPFR version 3.1.1-p2, MPC version 1.0.2
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
unlimitePolymorphicGeneric.F90:8.33:

      generic :: assignment(=) => copyFromScalar, copyFromArray
                                 1
Error: Ambiguous interfaces 'copyfromarray' and 'copyfromscalar' in intrinsic
assignment operator at (1)

Reply via email to