aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorFritz Reese <fritzoreese@gmail.com>2016-10-25 15:27:39 +0000
committerFritz Reese <foreese@gcc.gnu.org>2016-10-25 15:27:39 +0000
commitcd714e1e56c53aeda0fe365a1daebf217731b42a (patch)
treeea11f6a2086413d833a90fb2aec1ec1d5196a654 /gcc/testsuite
parent90051c26da7abd0999ce0afdd9471e354009b861 (diff)
downloadgcc-cd714e1e56c53aeda0fe365a1daebf217731b42a.zip
gcc-cd714e1e56c53aeda0fe365a1daebf217731b42a.tar.gz
gcc-cd714e1e56c53aeda0fe365a1daebf217731b42a.tar.bz2
Enable %LOC as an rvalue with -std=legacy.
gcc/fortran/ * primary.c (gfc_match_rvalue): Match %LOC as LOC with -std=legacy. * gfortran.texi: Document. gcc/testsuite/gfortran.dg/ * dec_loc_rval_1.f90: New test. * dec_loc_rval_2.f90: New test. * dec_loc_rval_3.f90: New test. From-SVN: r241519
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gfortran.dg/dec_loc_rval_1.f9019
-rw-r--r--gcc/testsuite/gfortran.dg/dec_loc_rval_2.f9014
-rw-r--r--gcc/testsuite/gfortran.dg/dec_loc_rval_3.f0313
4 files changed, 52 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a64e74d..33a9913 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,11 @@
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
+ * gfortran.dg/dec_loc_rval_1.f90: New test.
+ * gfortran.dg/dec_loc_rval_2.f90: New test.
+ * gfortran.dg/dec_loc_rval_3.f90: New test.
+
+2016-10-25 Fritz Reese <fritzoreese@gmail.com>
+
* gfortran.dg/dec_type_print.f90: New testcase.
2016-10-25 Fritz Reese <fritzoreese@gmail.com>
diff --git a/gcc/testsuite/gfortran.dg/dec_loc_rval_1.f90 b/gcc/testsuite/gfortran.dg/dec_loc_rval_1.f90
new file mode 100644
index 0000000..070b8db
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dec_loc_rval_1.f90
@@ -0,0 +1,19 @@
+! { dg-do run }
+! { dg-options "-std=legacy" }
+!
+! Test the usage of %loc as an rvalue.
+!
+program main
+implicit none
+
+integer :: i, j, k
+
+i = loc(j)
+k = %loc(j)
+
+if (i .ne. k) then
+ print *, "bad %loc value"
+ call abort()
+endif
+
+end
diff --git a/gcc/testsuite/gfortran.dg/dec_loc_rval_2.f90 b/gcc/testsuite/gfortran.dg/dec_loc_rval_2.f90
new file mode 100644
index 0000000..20eeb85
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dec_loc_rval_2.f90
@@ -0,0 +1,14 @@
+! { dg-do compile }
+! { dg-options "-std=gnu" }
+!
+! Test warnings for usage of %loc as an rvalue without -std=legacy.
+!
+program main
+implicit none
+
+integer, volatile :: i, j, k
+
+i = loc(j)
+k = %loc(j) ! { dg-warning "Legacy Extension:" }
+
+end
diff --git a/gcc/testsuite/gfortran.dg/dec_loc_rval_3.f03 b/gcc/testsuite/gfortran.dg/dec_loc_rval_3.f03
new file mode 100644
index 0000000..b3441b8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dec_loc_rval_3.f03
@@ -0,0 +1,13 @@
+! { dg-do compile }
+! { dg-options "-std=f2003" }
+!
+! Test errors for usage of %loc as an rvalue with a real standard.
+!
+program main
+implicit none
+
+integer, volatile :: i, j, k
+
+k = %loc(j) ! { dg-error "Legacy Extension:" }
+
+end