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