From 058ce83f398415e2fc9e41bf23aac1353a33d9ba Mon Sep 17 00:00:00 2001 From: hjl Date: Wed, 28 Nov 2012 14:38:40 +0000 Subject: [PATCH] Handle OPT_SPECIAL_XXX in LTO Backported from mainline PR lto/54795 * lto-opts.c (lto_write_options): Also handle OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and OPT_SPECIAL_program_name. PR lto/55474 * lto-wrapper.c (merge_and_complain): Handle OPT_SPECIAL_unknown, OPT_SPECIAL_ignore, OPT_SPECIAL_program_name and OPT_SPECIAL_input_file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@193893 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 16 ++++++++++++++++ gcc/lto-opts.c | 25 ++++++++++++++----------- gcc/lto-wrapper.c | 6 ++++++ 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a02038685a5..15f0c3087a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2012-11-28 H.J. Lu + + Backported from mainline + 2012-11-27 H.J. Lu + Markus Trippelsdorf + + PR lto/54795 + * lto-opts.c (lto_write_options): Also handle + OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and + OPT_SPECIAL_program_name. + + PR lto/55474 + * lto-wrapper.c (merge_and_complain): Handle + OPT_SPECIAL_unknown, OPT_SPECIAL_ignore, + OPT_SPECIAL_program_name and OPT_SPECIAL_input_file. + 2012-11-27 Paolo Bonzini PR rtl-optimization/55489 diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c index 668a5ce9163..8c504c28639 100644 --- a/gcc/lto-opts.c +++ b/gcc/lto-opts.c @@ -93,6 +93,20 @@ lto_write_options (void) { struct cl_decoded_option *option = &save_decoded_options[i]; + /* Skip explicitly some common options that we do not need. */ + switch (option->opt_index) + { + case OPT_dumpbase: + case OPT_SPECIAL_unknown: + case OPT_SPECIAL_ignore: + case OPT_SPECIAL_program_name: + case OPT_SPECIAL_input_file: + continue; + + default: + break; + } + /* Skip frontend and driver specific options here. */ if (!(cl_options[option->opt_index].flags & (CL_COMMON|CL_TARGET|CL_LTO))) continue; @@ -108,17 +122,6 @@ lto_write_options (void) if (cl_options[option->opt_index].flags & (CL_DRIVER|CL_WARNING)) continue; - /* Skip explicitly some common options that we do not need. */ - switch (option->opt_index) - { - case OPT_dumpbase: - case OPT_SPECIAL_input_file: - continue; - - default: - break; - } - for (j = 0; j < option->canonical_option_num_elements; ++j) append_to_collect_gcc_options (&temporary_obstack, &first_p, option->canonical_option[j]); diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index 1c9aa833dbc..fcc9b724641 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -393,6 +393,12 @@ merge_and_complain (struct cl_decoded_option **decoded_options, struct cl_decoded_option *foption = &fdecoded_options[i]; switch (foption->opt_index) { + case OPT_SPECIAL_unknown: + case OPT_SPECIAL_ignore: + case OPT_SPECIAL_program_name: + case OPT_SPECIAL_input_file: + break; + default: if (!(cl_options[foption->opt_index].flags & CL_TARGET)) break; -- 2.11.0