* as.c (show_usage): Document new options.
authorGeoffrey Keating <geoffk@geoffk.org>
Mon, 11 Oct 1999 04:07:10 +0000 (04:07 +0000)
committerGeoffrey Keating <geoffk@geoffk.org>
Mon, 11 Oct 1999 04:07:10 +0000 (04:07 +0000)
(parse_args): Add --no-warn, --warn, --fatal-warnings,
which become 'W', OPTION_WARN, and OPTION_WARN_FATAL.
(parse_args): Parse the new options.
(main): If there were warnings, and --fatal-warnings
was specified, print an error.
* as.h: New variable, flag_fatal_warnings, for new option.

gas/ChangeLog
gas/as.c
gas/as.h
gas/doc/as.1
gas/doc/as.texinfo

index 164c893e2a58dedf315c4793e212304efe0f0d34..c3dd0526c5abfc398342d29d21c55ae70b1e0d10 100644 (file)
@@ -1,3 +1,13 @@
+Mon Oct 11 14:02:40 1999  Geoffrey Keating  <geoffk@cygnus.com>
+
+       * as.c (show_usage): Document new options.
+       (parse_args): Add --no-warn, --warn, --fatal-warnings,
+       which become 'W', OPTION_WARN, and OPTION_WARN_FATAL.
+       (parse_args): Parse the new options.
+       (main): If there were warnings, and --fatal-warnings
+       was specified, print an error.
+       * as.h: New variable, flag_fatal_warnings, for new option.
+
 Sun Oct 10 01:47:23 1999  Jerry Quinn <jerry.quinn.adv91@alum.dartmouth.org>
 
        * config/tc-hppa.c (pa_ip):  Add new codes 'cc', 'cd', 'cC', 'co',
index 59d9b831fad13533f3887a6e88b980bad39a075d..cda77cadbf013331cec4b20fda07e72b12a6a1e1 100644 (file)
--- a/gas/as.c
+++ b/gas/as.c
@@ -170,7 +170,9 @@ Options:\n\
   --strip-local-absolute  strip local absolute symbols\n\
   --traditional-format   Use same format as native assembler when possible\n\
   --version              print assembler version number and exit\n\
-  -W                     suppress warnings\n\
+  -W  --no-warn                  suppress warnings\n\
+  --warn                 don't suppress warnings\n\
+  --fatal-warnings       treat warnings as errors\n\
   --itbl INSTTBL         extend instruction set to include instructions\n\
                          matching the specifications defined in file INSTTBL\n\
   -w                     ignored\n\
@@ -371,7 +373,12 @@ parse_args (pargc, pargv)
 #define OPTION_TRADITIONAL_FORMAT (OPTION_STD_BASE + 16)
     {"traditional-format", no_argument, NULL, OPTION_TRADITIONAL_FORMAT},
 #define OPTION_GDWARF2 (OPTION_STD_BASE + 17)
-    {"gdwarf2", no_argument, NULL, OPTION_GDWARF2}
+    {"gdwarf2", no_argument, NULL, OPTION_GDWARF2},
+    {"no-warn", no_argument, NULL, 'W'},
+#define OPTION_WARN (OPTION_STD_BASE + 18)
+    {"warn", no_argument, NULL, OPTION_WARN},
+#define OPTION_WARN_FATAL (OPTION_STD_BASE + 19)
+    {"fatal-warnings", no_argument, NULL, OPTION_WARN_FATAL}
   };
 
   /* Construct the option lists from the standard list and the
@@ -604,6 +611,16 @@ the GNU General Public License.  This program has absolutely no warranty.\n"));
          flag_no_warnings = 1;
          break;
 
+       case OPTION_WARN:
+         flag_no_warnings = 0;
+         flag_fatal_warnings = 0;
+         break;
+
+       case OPTION_WARN_FATAL:
+         flag_no_warnings = 0;
+         flag_fatal_warnings = 1;
+         break;
+
        case 'Z':
          flag_always_generate_output = 1;
          break;
@@ -834,6 +851,9 @@ main (argc, argv)
     output_file_close (out_file_name);
 #endif
 
+  if (flag_fatal_warnings && had_warnings() > 0 && had_errors () == 0)
+    as_bad (_("%d warnings, treating warnings as errors"), had_warnings());
+
   if (had_errors () > 0 && ! flag_always_generate_output)
     keep_it = 0;
 
index e72902bf6b1fe5a288aeca81c9f170746cd52b71..62ef3761112d4f6773cb6ce118bb12b1f3d6b6e6 100644 (file)
--- a/gas/as.h
+++ b/gas/as.h
@@ -427,6 +427,9 @@ COMMON unsigned char flag_readonly_data_in_text; /* -R */
 /* True if warnings should be inhibited.  */
 COMMON int flag_no_warnings; /* -W */
 
+/* True if warnings count as errors.  */
+COMMON int flag_fatal_warnings; /* --fatal-warnings */
+
 /* True if we should attempt to generate output even if non-fatal errors
    are detected.  */
 COMMON unsigned char flag_always_generate_output; /* -Z */
index adf28868eac174285ac83a55d582dee4052f9816..08d5805f37c8f14a3d31ede6c696d973649e8ddd 100644 (file)
@@ -195,8 +195,14 @@ Announce \c
 .B as\c
 \& version
 .TP
-.B \-W
-Suppress warning messages
+.B \-W, \-\-no-warn
+Suppress warning messages.
+.TP
+.B \-\-fatal\-warnings
+Consider warnings to be fatal.
+.TP
+.B \-\-warn
+Just warn on warnings.
 .TP
 .IR "\-\^\-" "\ |\ " "files\|.\|.\|."
 Source files to assemble, or standard input (\c
index 546acaf09290d6d2bb3ac0b848f11d4e0e56375d..330a8b23419cea29df01f489b68621d6277d30ea 100644 (file)
@@ -204,7 +204,8 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @value{AS} [ -a[cdhlns][=file] ] [ -D ]  [ --defsym @var{sym}=@var{val} ]
  [ -f ] [ --gstabs ] [ --gdwarf2 ] [ --help ] [ -I @var{dir} ] [ -J ] [ -K ] [ -L ]
  [ --keep-locals ] [ -o @var{objfile} ] [ -R ] [ --statistics ] [ -v ]
- [ -version ] [ --version ] [ -W ] [ -w ] [ -x ] [ -Z ]
+ [ -version ] [ --version ] [ -W ] [ --warn ] [ --fatal-warnings ] 
+ [ -w ] [ -x ] [ -Z ]
 @ifset A29K
 @c am29k has no machine-dependent assembler options
 @end ifset
@@ -370,8 +371,15 @@ Print the @code{as} version.
 Print the @code{as} version and exit.
 
 @item -W
+@itemx --no-warn
 Suppress warning messages.
 
+@item --fatal-warnings
+Treat warnings as errors.
+
+@item --warn
+Don't suppress warning messages or treat them as errors.
+
 @item -w
 Ignored.
 
@@ -1024,7 +1032,7 @@ assembler.)
 * statistics::    --statistics to see statistics about assembly
 * traditional-format:: --traditional-format for compatible output
 * v::             -v to announce version
-* W::             -W to suppress warnings
+* W::             -W, --no-warn, --warn, --fatal-warnings to control warnings
 * Z::             -Z to make object file even after errors
 @end menu
 
@@ -1400,19 +1408,32 @@ option @samp{-v} (which you can also spell as @samp{-version}) on the
 command line.
 
 @node W
-@section Suppress Warnings: @code{-W}
+@section Control Warnings: @code{-W}, @code{--warn}, @code{--no-warn}, @code{--fatal-warnings}
 
-@kindex -W
-@cindex suppressing warnings
-@cindex warnings, suppressing
 @code{@value{AS}} should never give a warning or error message when
 assembling compiler output.  But programs written by people often
 cause @code{@value{AS}} to give a warning that a particular assumption was
 made.  All such warnings are directed to the standard error file.
-If you use this option, no warnings are issued.  This option only
-affects the warning messages: it does not change any particular of how
-@code{@value{AS}} assembles your file.  Errors, which stop the assembly, are
-still reported.
+
+@kindex @samp{-W}
+@kindex @samp{--no-warn}
+@cindex suppressing warnings
+@cindex warnings, suppressing
+If you use the @code{-W} and @code{--no-warn} options, no warnings are issued.
+This only affects the warning messages: it does not change any particular of
+how @code{@value{AS}} assembles your file.  Errors, which stop the assembly,
+are still reported.
+
+@kindex @samp{--fatal-warnings}
+@cindex errors, caused by warnings
+@cindex warnings, causing error
+If you use the @code{--fatal-warnings} option, @code{@value{AS}} considers
+files that generate warnings to be in error.
+
+@kindex @samp{--warn}
+@cindex warnings, switching on
+You can switch these options off again by specifying @code{--warn}, which
+causes warnings to be output as usual.
 
 @node Z
 @section Generate Object File in Spite of Errors: @code{-Z}