diff options
author | Richard Biener <rguenther@suse.de> | 2013-11-20 10:31:24 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-11-20 10:31:24 +0000 |
commit | 5d1a0108f1b72f8cb3224cc465b2f67421210181 (patch) | |
tree | e3cdaaeaa9d8ca6484fca76ec6770b667d08d60f /gcc/lto-wrapper.c | |
parent | d6e193b3e4809f3b3d309819566fa4ee5b837636 (diff) | |
download | gcc-5d1a0108f1b72f8cb3224cc465b2f67421210181.zip gcc-5d1a0108f1b72f8cb3224cc465b2f67421210181.tar.gz gcc-5d1a0108f1b72f8cb3224cc465b2f67421210181.tar.bz2 |
re PR target/59035 (FAIL: gcc.dg/torture/c99-contract-1.c -O2 -flto -fno-use-linker-plugin -flto-partition=none execution test)
2013-11-20 Richard Biener <rguenther@suse.de>
PR lto/59035
* lto-opts.c (lto_write_options): Write defaults only if
they were not explicitely specified. Also write
-ffp-contract default.
* lto-wrapper.c (merge_and_complain): Merge -ffp-contract
conservatively.
(run_gcc): Pass through -ffp-contract.
From-SVN: r205096
Diffstat (limited to 'gcc/lto-wrapper.c')
-rw-r--r-- | gcc/lto-wrapper.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index 57978c8..335ec8f 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -422,6 +422,18 @@ merge_and_complain (struct cl_decoded_option **decoded_options, append_option (decoded_options, decoded_options_count, foption); break; + case OPT_ffp_contract_: + /* For selected options we can merge conservatively. */ + for (j = 0; j < *decoded_options_count; ++j) + if ((*decoded_options)[j].opt_index == foption->opt_index) + break; + if (j == *decoded_options_count) + append_option (decoded_options, decoded_options_count, foption); + /* FP_CONTRACT_OFF < FP_CONTRACT_ON < FP_CONTRACT_FAST. */ + else if (foption->value < (*decoded_options)[j].value) + (*decoded_options)[j] = *foption; + break; + case OPT_freg_struct_return: case OPT_fpcc_struct_return: for (j = 0; j < *decoded_options_count; ++j) @@ -578,6 +590,7 @@ run_gcc (unsigned argc, char *argv[]) case OPT_fgnu_tm: case OPT_freg_struct_return: case OPT_fpcc_struct_return: + case OPT_ffp_contract_: break; default: |