* options.h (class General_options): Add --fatal-warnings.
authorIan Lance Taylor <ian@airs.com>
Tue, 6 May 2008 18:32:38 +0000 (18:32 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 6 May 2008 18:32:38 +0000 (18:32 +0000)
* main.cc (main): Implement --fatal-warnings.
* errors.h (Errors::warning_count): New function.

gold/ChangeLog
gold/errors.h
gold/main.cc
gold/options.h

index 358ec64..3f77ed4 100644 (file)
@@ -1,5 +1,9 @@
 2008-05-06  Ian Lance Taylor  <iant@google.com>
 
+       * options.h (class General_options): Add --fatal-warnings.
+       * main.cc (main): Implement --fatal-warnings.
+       * errors.h (Errors::warning_count): New function.
+
        * options.h (class General_options): Add -Bsymbolic-functions.
        * symtab.h (Symbol::is_preemptible): Check for
        -Bsymbolic-functions.
index bc77994..b373a06 100644 (file)
@@ -93,6 +93,11 @@ class Errors
   error_count() const
   { return this->error_count_; }
 
+  // Return the number of warnings.
+  int
+  warning_count() const
+  { return this->warning_count_; }
+
  private:
   Errors(const Errors&);
   Errors& operator=(const Errors&);
index 9b6ded0..c785da2 100644 (file)
@@ -220,6 +220,11 @@ main(int argc, char** argv)
       layout.print_stats();
     }
 
+  if (parameters->options().fatal_warnings()
+      && errors.warning_count() > 0
+      && errors.error_count() == 0)
+    gold_error("treating warnings as errors");
+
   // If the user used --noinhibit-exec, we force the exit status to be
   // successful.  This is compatible with GNU ld.
   gold_exit(errors.error_count() == 0
index 9eb51ce..2ea57ec 100644 (file)
@@ -565,6 +565,10 @@ class General_options
   DEFINE_bool(eh_frame_hdr, options::TWO_DASHES, '\0', false,
               N_("Create exception frame header"), NULL);
 
+  DEFINE_bool(fatal_warnings, options::TWO_DASHES, '\0', false,
+             N_("Treat warnings as errors"),
+             N_("Do not treat warnings as errors"));
+
   DEFINE_string(soname, options::ONE_DASH, 'h', NULL,
                 N_("Set shared library name"), N_("FILENAME"));