aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/gold.cc2
-rw-r--r--gold/parameters.h6
2 files changed, 7 insertions, 1 deletions
diff --git a/gold/gold.cc b/gold/gold.cc
index 9baebaf..0b7c2ec 100644
--- a/gold/gold.cc
+++ b/gold/gold.cc
@@ -47,7 +47,7 @@ const char* program_name;
void
gold_exit(bool status)
{
- if (!status && parameters != NULL)
+ if (!status && parameters != NULL && parameters->options_valid())
unlink_if_ordinary(parameters->output_file_name());
exit(status ? EXIT_SUCCESS : EXIT_FAILURE);
}
diff --git a/gold/parameters.h b/gold/parameters.h
index 4e135c6..4b764e3 100644
--- a/gold/parameters.h
+++ b/gold/parameters.h
@@ -47,6 +47,12 @@ class Parameters
errors() const
{ return this->errors_; }
+ // Whether the options are valid. This should not normally be
+ // called, but it is needed by gold_exit.
+ bool
+ options_valid() const
+ { return this->options_valid_; }
+
// Whether to use threads.
bool
threads() const