aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2016-02-09 07:04:08 +0000
committerTom de Vries <vries@gcc.gnu.org>2016-02-09 07:04:08 +0000
commit34df756cd8f4c302aca408d5338d72940e552f0f (patch)
tree0ab30fcfb32531563064a732e939e5005b6a3e5e /gcc
parent806a4ad8fef1c2a1b3a068ac64a0573a4467e87c (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/lto-wrapper.c31
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. */