diff options
author | tobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-25 22:07:32 +0000 |
---|---|---|
committer | tobi <tobi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-25 22:07:32 +0000 |
commit | fa06900405a051b23855e24aa9d2d3b0504c51e9 (patch) | |
tree | 964405ed0e0f03edc6848c42f8c9cc13a1404f4e /gcc/testsuite/gfortran.dg | |
parent | 43daa21e7c3b20f510ed5e16e2aef1b806d69d2b (diff) | |
download | gcc-fa06900405a051b23855e24aa9d2d3b0504c51e9.tar.gz |
fortran/
* expr.c (gfc_check_assign): Add comment. Add new warning.
* trans-expr.c (gfc_conv_function_call): Correctly dereference
result of pointer valued function when not in pointer assignment.
testsuite/
* gfortran.dg/assignment_1.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86585 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg')
-rw-r--r-- | gcc/testsuite/gfortran.dg/assignment_1.f90 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/assignment_1.f90 b/gcc/testsuite/gfortran.dg/assignment_1.f90 new file mode 100644 index 00000000000..c8018a3d4c3 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/assignment_1.f90 @@ -0,0 +1,36 @@ +! { dg-do run } +! { dg-options -Wsurprising } +integer, pointer :: p +integer, target :: t, s + +! The tests for character pointers are currently commented out, +! because they don't yet work correctly. +! This is PR 17192 +!!$character*5, pointer :: d +!!$character*5, target :: c, e + +t = 1 +p => s +! We didn't dereference the pointer in the following line. +p = f() ! { dg-warning "POINTER valued function" "" } +p = p+1 +if (p.ne.2) call abort() +if (p.ne.s) call abort() + +!!$! verify that we also dereference correctly the result of a function +!!$! which returns its result by reference +!!$c = "Hallo" +!!$d => e +!!$d = g() ! dg-warning "POINTER valued function" "" +!!$if (d.ne."Hallo") call abort() + +contains +function f() +integer, pointer :: f +f => t +end function f +!!$function g() +!!$character, pointer :: g +!!$g => c +!!$end function g +end |