OSDN Git Service

2010-04-06 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Apr 2010 19:03:10 +0000 (19:03 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:16:58 +0000 (14:16 +0900)
        PR fortran/18918
        * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
        * match.c (gfc_match_critical, sync_statement): Ditto.
        * gfortran.h (gfc_fcoarray): New enum.
        (gfc_option_t): Use it.
        * lang.opt (fcoarray): Add new flag.
        * invoke.texi (fcoarray): Document it.
        * options.c (gfc_init_options,gfc_handle_option): Handle
        * -fcoarray=.
        (gfc_handle_coarray_option): New function.

2010-04-06  Tobias Burnus  <burnus@net-b.de>

        PR fortran/18918
        * gfortran.dg/coarray_2.f90: Add dg-options -fcoarray=single.
        * gfortran.dg/coarray_3.f90: Ditto.
        * gfortran.dg/coarray_4.f90: Ditto.
        * gfortran.dg/coarray_5.f90: Ditto.
        * gfortran.dg/coarray_6.f90: Ditto.
        * gfortran.dg/coarray_7.f90: Ditto.
        * gfortran.dg/coarray_8.f90: Ditto.
        * gfortran.dg/coarray_9.f90: New -fcoarray=none test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158016 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/fortran/ChangeLog
gcc/fortran/array.c
gcc/fortran/match.c
gcc/fortran/options.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/coarray_2.f90
gcc/testsuite/gfortran.dg/coarray_3.f90
gcc/testsuite/gfortran.dg/coarray_4.f90
gcc/testsuite/gfortran.dg/coarray_6.f90
gcc/testsuite/gfortran.dg/coarray_9.f90

index b1db67a..9725d8e 100644 (file)
@@ -1,6 +1,18 @@
 2010-04-06  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/18918
+       * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
+       * match.c (gfc_match_critical, sync_statement): Ditto.
+       * gfortran.h (gfc_fcoarray): New enum.
+       (gfc_option_t): Use it.
+       * lang.opt (fcoarray): Add new flag.
+       * invoke.texi (fcoarray): Document it.
+       * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
+       (gfc_handle_coarray_option): New function.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
        * gfortran.h (gfc_array_spec): Add cotype.
        * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
        and defer error diagnostic.
index 4a110bb..bf38ddb 100644 (file)
@@ -529,6 +529,12 @@ coarray:
       == FAILURE)
     goto cleanup;
 
+  if (gfc_option.coarray == GFC_FCOARRAY_NONE)
+    {
+       gfc_error ("Coarrays disabled at %C, use -fcoarray= to enable");
+       goto cleanup;
+    }
+
   for (;;)
     {
       as->corank++;
index 5886691..d2ecd0b 100644 (file)
@@ -1750,6 +1750,12 @@ gfc_match_critical (void)
       == FAILURE)
     return MATCH_ERROR;
 
+  if (gfc_option.coarray == GFC_FCOARRAY_NONE)
+    {
+       gfc_error ("Coarrays disabled at %C, use -fcoarray= to enable");
+       return MATCH_ERROR;
+    }
+
   if (gfc_find_state (COMP_CRITICAL) == SUCCESS)
     {
       gfc_error ("Nested CRITICAL block at %C");
@@ -2145,6 +2151,12 @@ sync_statement (gfc_statement st)
       == FAILURE)
     return MATCH_ERROR;
 
+  if (gfc_option.coarray == GFC_FCOARRAY_NONE)
+    {
+       gfc_error ("Coarrays disabled at %C, use -fcoarray= to enable");
+       return MATCH_ERROR;
+    }
+
   if (gfc_find_state (COMP_CRITICAL) == SUCCESS)
     {
       gfc_error ("Image control statement SYNC at %C in CRITICAL block");
index 6a5a3db..a91ba93 100644 (file)
@@ -132,6 +132,9 @@ gfc_init_options (unsigned int argc, const char **argv)
   gfc_option.rtcheck = 0;
   gfc_option.coarray = GFC_FCOARRAY_NONE;
 
+  /* Argument pointers cannot point to anything but their argument.  */
+  flag_argument_noalias = 3;
+
   flag_errno_math = 0;
 
   set_default_std_flags ();
index 6b0454b..e60cc67 100644 (file)
@@ -1,6 +1,16 @@
 2010-04-06  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/18918
+       * gfortran.dg/coarray_2.f90: Add dg-options -fcoarray=single.
+       * gfortran.dg/coarray_3.f90: Ditto.
+       * gfortran.dg/coarray_4.f90: Ditto.
+       * gfortran.dg/coarray_5.f90: Ditto.
+       * gfortran.dg/coarray_6.f90: Ditto.
+       * gfortran.dg/coarray_9.f90: New -fcoarray=none test.
+
+2010-04-06  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/18918
        * gfortran.dg/coarray_4.f90: Fix test.
        * gfortran.dg/coarray_6.f90: Add more tests.
 
index 1fcb9b8..902a0dd 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-do run }
+! { dg-options "-fcoarray=single" }
 ! { dg-shouldfail "error stop" }
 ! 
 ! Coarray support
index 648f2fa..63c3bd3 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-do compile }
+! { dg-options "-fcoarray=single" }
 ! 
 ! Coarray support
 ! PR fortran/18918
index cb693ea..5607ec9 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-do compile }
+! { dg-options "-fcoarray=single" }
 !
 ! Coarray support -- corank declarations
 ! PR fortran/18918
index b6d8b49..d3c600b 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-do compile }
+! { dg-options "-fcoarray=single" }
 !
 ! Coarray support -- corank declarations
 ! PR fortran/18918
index cdfb4dc..d44cdda 100644 (file)
@@ -9,10 +9,9 @@ integer :: a
 integer :: b[*] ! { dg-error "Coarrays disabled" }
 
 error stop "Error"
-sync all !  "Coarrays disabled"  (but error above is fatal)
+sync all ! { dg-error "Coarrays disabled" }
 
-critical ! "Coarrays disabled"  (but error above is fatal)
-
-end critical ! "Expecting END PROGRAM statement"  (but error above is fatal)
+critical ! { dg-error "Coarrays disabled" }
+end critical ! { dg-error "Expecting END PROGRAM statement" }
 
 end