aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.h
diff options
context:
space:
mode:
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2020-02-24 11:55:45 +0530
committerPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2020-02-24 11:55:45 +0530
commitf1a681a174cdfb82e62c246d6f4add9a25fc2e43 (patch)
tree8c6d66f99473e10c0265b47eec8831eacc05392b /gcc/opts.h
parent9069e9484cec2ff981c87c75b226ad738847ca07 (diff)
downloadgcc-f1a681a174cdfb82e62c246d6f4add9a25fc2e43.zip
gcc-f1a681a174cdfb82e62c246d6f4add9a25fc2e43.tar.gz
gcc-f1a681a174cdfb82e62c246d6f4add9a25fc2e43.tar.bz2
PR47785: Add support for handling Xassembler/Wa options with LTO.
2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org> PR driver/47785 * gcc.c (putenv_COLLECT_AS_OPTIONS): New function. (driver::main): Call putenv_COLLECT_AS_OPTIONS. * opts-common.c (parse_options_from_collect_gcc_options): New function. (prepend_xassembler_to_collect_as_options): Likewise. * opts.h (parse_options_from_collect_gcc_options): Declare prototype. (prepend_xassembler_to_collect_as_options): Likewise. * lto-opts.c (lto_write_options): Stream assembler options in COLLECT_AS_OPTIONS. * lto-wrapper.c (xassembler_options_error): New static variable. (get_options_from_collect_gcc_options): Move parsing options code to parse_options_from_collect_gcc_options and call it. (merge_and_complain): Validate -Xassembler options. (append_compiler_options): Handle OPT_Xassembler. (run_gcc): Append command line -Xassembler options to collect_gcc_options. * doc/invoke.texi: Add documentation about using Xassembler options with LTO. testsuite/ * gcc.target/arm/pr78353-1.c: New test. * gcc.target/arm/pr78353-2.c: Likewise.
Diffstat (limited to 'gcc/opts.h')
-rw-r--r--gcc/opts.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/opts.h b/gcc/opts.h
index c6ad6c7..8f594b4 100644
--- a/gcc/opts.h
+++ b/gcc/opts.h
@@ -460,6 +460,11 @@ extern bool parse_and_check_align_values (const char *flag,
bool report_error,
location_t loc);
+extern void parse_options_from_collect_gcc_options (const char *, obstack *,
+ int *);
+
+extern void prepend_xassembler_to_collect_as_options (const char *, obstack *);
+
/* Set OPTION in OPTS to VALUE if the option is not set in OPTS_SET. */
#define SET_OPTION_IF_UNSET(OPTS, OPTS_SET, OPTION, VALUE) \