This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/61180] New: surprising -Wsurprising warning
- From: "Joost.VandeVondele at mat dot ethz.ch" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 13 May 2014 16:36:05 +0000
- Subject: [Bug fortran/61180] New: surprising -Wsurprising warning
- Auto-submitted: auto-generated
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61180
Bug ID: 61180
Summary: surprising -Wsurprising warning
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: Joost.VandeVondele at mat dot ethz.ch
To my surprise, -Wsurprising produces surprising warnings. The issue is the
following:
MODULE M1
TYPE foo_type
INTEGER, POINTER, DIMENSION(:) :: data
END TYPE
CONTAINS
FUNCTION get_data(foo) RESULT(res)
TYPE(foo_type) :: foo
INTEGER, POINTER, DIMENSION(:) :: res
res=>foo%data
END FUNCTION
END MODULE M1
USE M1
TYPE(foo_type) :: foo
INTEGER, DIMENSION(:), ALLOCATABLE :: data1
INTEGER, DIMENSION(:), POINTER :: data2
INTEGER, DIMENSION(:), POINTER :: data3
ALLOCATE(data1(10))
ALLOCATE(data2(10))
ALLOCATE(foo%data(10))
! no warning needed...pointer assignment not possible
data1=get_data(foo)
! no warning needed...pointer assignment not intended
data2(:)=get_data(foo)
! warning possible, but not documented on
! gfortran/Error-and-Warning-Options.html#Error-and-Warning-Options
data3=get_data(foo)
END PROGRAM
warnings for the first two cases are presumably not needed, the 3rd case is not
documented
bug.f90:22.8:
data1=get_data(foo)
1
Warning: POINTER-valued function appears on right-hand side of assignment at
(1)
The option has been added quite a while ago:
http://gcc.gnu.org/ml/fortran/2004-08/msg00220.html
maybe it should just be a bit restricted