[petsc-dev] Need help with Fortran code/compiler issue
Jeff Hammond
jeff.science at gmail.com
Thu Apr 7 15:17:16 CDT 2016
In my experience, "-Wmaybe-uninitialized" is a great way to generate false
positive compiler warnings and nothing else.
Jeff
On Thu, Apr 7, 2016 at 11:46 AM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> src/sys/classes/bag/f2003-src/fsrc/bagenum.F has the code fragment
>
> Subroutine PetscBagRegisterEnum(bag,addr,FArray,def,n,h,ierr)
> use,intrinsic :: iso_c_binding
> implicit none
>
> PetscBag bag
> character(*) n,h
> character(*) FArray(*)
> PetscEnum :: def
> PetscErrorCode,intent(out) :: ierr
> PetscReal addr(*)
>
> Type(C_Ptr),Dimension(:),Pointer :: CArray
> character(kind=c_char),pointer :: nullc => null()
> PetscInt :: i,Len
> Character(kind=C_char,len=256),Dimension(:),Pointer::list1
>
> do i=1,256
> if (len_trim(Farray(i)) .eq. 0) then
> Len = i-1
> goto 100
> endif
> if (len_trim(Farray(i)) .gt. 255) then
> ierr = PETSC_ERR_ARG_OUTOFRANGE
> return
> endif
> enddo
> ierr = PETSC_ERR_ARG_OUTOFRANGE
> return
>
> 100 continue
>
> Allocate(list1(Len),stat=ierr);
> Allocate(CArray(Len+1),stat=ierr)
> do i=1,Len
> list1(i) = trim(FArray(i))//C_NULL_CHAR
> enddo
>
> CArray = (/(c_loc(list1(i)),i=1,Len),c_loc(nullc)/)
> call PetscBagRegisterEnumPrivate(bag,addr,CArray,def,n,h,ierr)
> DeAllocate(CArray)
> DeAllocate(list1)
> End Subroutine
>
> which produces the following warning with one Fortran compiler:
>
>
> /Users/petsc/petsc.clone-4/src/sys/objects/f2003-src/fsrc/optionenum.F:35:0:
>
> CArray = (/(c_loc(list1(i)),i=1,Len),c_loc(nullc)/)
> ^
> Warning: 'list1.data' may be used uninitialized in this function
> [-Wmaybe-uninitialized]
>
> Do any Fortran programmers know if the code is correct or if this is an
> incorrect warning from the compiler?
>
> Thanks
>
> Barry
>
>
>
>
--
Jeff Hammond
jeff.science at gmail.com
http://jeffhammond.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20160407/9144d31e/attachment.html>
More information about the petsc-dev
mailing list