re PR fortran/69520 (Implement reversal of -fcheck options)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Sun, 13 Mar 2016 00:19:08 +0000 (00:19 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Sun, 13 Mar 2016 00:19:08 +0000 (00:19 +0000)
2016-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
    Harold Anlauf  <anlauf@gmx.de>

PR fortran/69520
* invoke.texi: Explain use of the 'no-' construct within the
-fcheck= option.
* options.c (gfc_handle_runtime_check_option): Enable use of
'no-' prefix for the various options with -fcheck= to allow
negating previously enabled check options.

Co-Authored-By: Harald Anlauf <anlauf@gmx.de>
From-SVN: r234167

gcc/fortran/ChangeLog
gcc/fortran/invoke.texi
gcc/fortran/options.c

index cf0cb6d..9d3f200 100644 (file)
@@ -1,3 +1,13 @@
+2016-03-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+           Harold Anlauf  <anlauf@gmx.de>
+
+       PR fortran/69520
+       * invoke.texi: Explain use of the 'no-' construct within the
+       -fcheck= option.
+       * options.c (gfc_handle_runtime_check_option): Enable use of
+       'no-' prefix for the various options with -fcheck= to allow
+       negating previously enabled check options.
+
 2016-03-12  Paul Thomas  <pault@gcc.gnu.org>
 
        PR fortran/70031
index 7fbbc4b..e90656e 100644 (file)
@@ -1398,7 +1398,8 @@ library needs to be linked.
 @cindex checking array temporaries
 
 Enable the generation of run-time checks; the argument shall be
-a comma-delimited list of the following keywords.
+a comma-delimited list of the following keywords.  Prefixing a check with
+@option{no-} disables it if it was activated by a previous specification.
 
 @table @asis
 @item @samp{all}
@@ -1444,6 +1445,13 @@ Note: This check does not work for OpenMP programs and is disabled if used
 together with @option{-frecursive} and @option{-fopenmp}.
 @end table
 
+Example: Assuming you have a file @file{foo.f90}, the command
+@smallexample
+  gfortran -fcheck=all,no-array-temps foo.f90
+@end smallexample
+will compile the file with all checks enabled as specified above except
+warnings for generated array temporaries.
+
 
 @item -fbounds-check
 @opindex @code{fbounds-check}
index f8d8f8d..0fcda1d 100644 (file)
@@ -515,6 +515,15 @@ gfc_handle_runtime_check_option (const char *arg)
              result = 1;
              break;
            }
+         else if (optname[n] && pos > 3 && strncmp ("no-", arg, 3) == 0
+                  && strncmp (optname[n], arg+3, pos-3) == 0)
+           {
+             gfc_option.rtcheck &= ~optmask[n];
+             arg += pos;
+             pos = 0;
+             result = 1;
+             break;
+           }
        }
       if (!result)
        gfc_fatal_error ("Argument to %<-fcheck%> is not valid: %s", arg);