aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts-common.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-02-25 00:15:56 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2017-02-25 00:15:56 +0100
commitb982244362124a7f2ba907b08afe820e37aabaca (patch)
tree9660e601d65ced3bad984b92d9e7b1e49c3dde5e /gcc/opts-common.c
parent91f66e78cc141da77ff9e0e3c8519e1af3f26c07 (diff)
downloadgcc-b982244362124a7f2ba907b08afe820e37aabaca.zip
gcc-b982244362124a7f2ba907b08afe820e37aabaca.tar.gz
gcc-b982244362124a7f2ba907b08afe820e37aabaca.tar.bz2
re PR c/79677 (Weird handling of -Werror=)
PR c/79677 * opts.h (handle_generated_option): Add GENERATED_P argument. * opts-common.c (handle_option): Adjust function comment. (handle_generated_option): Add GENERATED_P argument, pass it to handle_option. (control_warning_option): Pass false to handle_generated_option GENERATED_P. * opts.c (maybe_default_option): Pass true to handle_generated_option GENERATED_P. * optc-gen.awk: Likewise. ada/ * gcc-interface/misc.c (gnat_handle_option): Pass true to handle_generated_option GENERATED_P. testsuite/ * gcc.dg/pr79677.c: New test. From-SVN: r245728
Diffstat (limited to 'gcc/opts-common.c')
-rw-r--r--gcc/opts-common.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/opts-common.c b/gcc/opts-common.c
index 8b924c9..f2f7385 100644
--- a/gcc/opts-common.c
+++ b/gcc/opts-common.c
@@ -959,9 +959,10 @@ keep:
option for options from the source file, UNKNOWN_LOCATION
otherwise. GENERATED_P is true for an option generated as part of
processing another option or otherwise generated internally, false
- for one explicitly passed by the user. Returns false if the switch
- was invalid. DC is the diagnostic context for options affecting
- diagnostics state, or NULL. */
+ for one explicitly passed by the user. control_warning_option
+ generated options are considered explicitly passed by the user.
+ Returns false if the switch was invalid. DC is the diagnostic
+ context for options affecting diagnostics state, or NULL. */
static bool
handle_option (struct gcc_options *opts,
@@ -1005,13 +1006,13 @@ handle_generated_option (struct gcc_options *opts,
size_t opt_index, const char *arg, int value,
unsigned int lang_mask, int kind, location_t loc,
const struct cl_option_handlers *handlers,
- diagnostic_context *dc)
+ bool generated_p, diagnostic_context *dc)
{
struct cl_decoded_option decoded;
generate_option (opt_index, arg, value, lang_mask, &decoded);
return handle_option (opts, opts_set, &decoded, lang_mask, kind, loc,
- handlers, true, dc);
+ handlers, generated_p, dc);
}
/* Fill in *DECODED with an option described by OPT_INDEX, ARG and
@@ -1503,7 +1504,7 @@ control_warning_option (unsigned int opt_index, int kind, const char *arg,
handle_generated_option (opts, opts_set,
opt_index, arg, value, lang_mask,
- kind, loc, handlers, dc);
+ kind, loc, handlers, false, dc);
}
}
}