Very similar bug as reported previously at Fortran derived type (mostly structure constructor) bugs.
Structure constructor for an extended type with overridden type-bound procedures. Using gnu and intel compilers, the following example is ok, but it fails using pgfortran:
$ pgfortran -V
pgfortran 16.10-0 64-bit target on x86-64 Linux -tp nehalem
The Portland Group - PGI Compilers and Tools
Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
$ pgfortran test.f90
PGF90-S-0066-Too few data constants in initialization statement (test.f90: 35)
0 inform, 0 warnings, 1 severes, 0 fatal for test_types2
module test_types1
implicit none
private
type, public :: foo
integer :: i
contains
private
procedure :: do_nothing
generic :: assignment(=) => do_nothing
end type foo
contains
subroutine do_nothing(a,b)
class(foo), intent(out) :: a
class(foo), intent(in) :: b
end subroutine do_nothing
end module test_types1
module test_types2
use test_types1
implicit none
private
type, extends(foo), public :: bar
character(len=15) :: a
contains
procedure :: do_nothing => do_do_nothing
end type bar
type(bar), public, parameter :: f = bar(B'10000','abcd')
contains
subroutine do_do_nothing(a,b)
class(bar), intent(out) :: a
class(foo), intent(in) :: b
end subroutine do_do_nothing
end module test_types2
program test_pgi_construct
use test_types2
implicit none
print *,f
end program test_pgi_construct
Without generic operation (=), the code is compiled correctly.