* options.h (class General_options): Add --fatal-warnings.

* main.cc (main): Implement --fatal-warnings.
	* errors.h (Errors::warning_count): New function.
This commit is contained in:
Ian Lance Taylor 2008-05-06 18:32:38 +00:00
parent f1f70eae28
commit d82a5bcc85
4 changed files with 18 additions and 0 deletions

View 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.

View 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&);

View 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

View 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"));