diff options
author | Tom de Vries <tom@codesourcery.com> | 2016-02-09 07:04:08 +0000 |
---|---|---|
committer | Tom de Vries <vries@gcc.gnu.org> | 2016-02-09 07:04:08 +0000 |
commit | 34df756cd8f4c302aca408d5338d72940e552f0f (patch) | |
tree | 0ab30fcfb32531563064a732e939e5005b6a3e5e /gcc | |
parent | 806a4ad8fef1c2a1b3a068ac64a0573a4467e87c (diff) | |
download | gcc-34df756cd8f4c302aca408d5338d72940e552f0f.zip gcc-34df756cd8f4c302aca408d5338d72940e552f0f.tar.gz gcc-34df756cd8f4c302aca408d5338d72940e552f0f.tar.bz2 |
Handle -fdiagnostics-color in lto
2016-02-09 Tom de Vries <tom@codesourcery.com>
PR lto/69707
* lto-wrapper.c (append_diag_options): New function.
(compile_offload_image): Call append_diag_options.
* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: New test.
From-SVN: r233237
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/lto-wrapper.c | 31 |
2 files changed, 37 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c82167b..8006790 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-02-09 Tom de Vries <tom@codesourcery.com> + + PR lto/69707 + * lto-wrapper.c (append_diag_options): New function. + (compile_offload_image): Call append_diag_options. + 2016-02-08 Sandra Loosemore <sandra@codesourcery.com> PR other/69722 diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index 6a337a0..ed20b4e 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -540,6 +540,36 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts, } } +/* Append diag options in OPTS with length COUNT to ARGV_OBSTACK. */ + +static void +append_diag_options (obstack *argv_obstack, struct cl_decoded_option *opts, + unsigned int count) +{ + /* Append compiler driver arguments as far as they were merged. */ + for (unsigned int j = 1; j < count; ++j) + { + struct cl_decoded_option *option = &opts[j]; + + switch (option->opt_index) + { + case OPT_fdiagnostics_color_: + case OPT_fdiagnostics_show_caret: + case OPT_fdiagnostics_show_option: + case OPT_fdiagnostics_show_location_: + case OPT_fshow_column: + break; + default: + continue; + } + + /* Pass the option on. */ + for (unsigned int i = 0; i < option->canonical_option_num_elements; ++i) + obstack_ptr_grow (argv_obstack, option->canonical_option[i]); + } +} + + /* Append linker options OPTS to ARGV_OBSTACK. */ static void @@ -721,6 +751,7 @@ compile_offload_image (const char *target, const char *compiler_path, /* Append options from offload_lto sections. */ append_compiler_options (&argv_obstack, compiler_opts, compiler_opt_count); + append_diag_options (&argv_obstack, linker_opts, linker_opt_count); /* Append options specified by -foffload last. In case of conflicting options we expect offload compiler to choose the latest. */ |