Commit 5a307ee5 by Richard Biener Committed by Richard Biener

lto-opts.c (lto_write_options): Stream -g when debug is enabled.

2019-09-11  Richard Biener  <rguenther@suse.de>

	* lto-opts.c (lto_write_options): Stream -g when debug is enabled.
	* lto-wrapper.c (merge_and_complain): Pick up -g.
	(append_compiler_options): Likewise.
	(run_gcc): Re-instantiate handling -g0 at link-time.
	* doc/invoke.texi (flto): Document debug info generation.

From-SVN: r275640
parent 46dfa8ad
2019-09-11 Richard Biener <rguenther@suse.de> 2019-09-11 Richard Biener <rguenther@suse.de>
* lto-opts.c (lto_write_options): Stream -g when debug is enabled.
* lto-wrapper.c (merge_and_complain): Pick up -g.
(append_compiler_options): Likewise.
(run_gcc): Re-instantiate handling -g0 at link-time.
* doc/invoke.texi (flto): Document debug info generation.
2019-09-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/90387 PR tree-optimization/90387
* vr-values.c (vr_values::extract_range_basic): After inlining * vr-values.c (vr_values::extract_range_basic): After inlining
simplify non-constant __builtin_constant_p to false. simplify non-constant __builtin_constant_p to false.
......
...@@ -10339,6 +10339,14 @@ conflicting translation units. Specifically ...@@ -10339,6 +10339,14 @@ conflicting translation units. Specifically
precedence; and for example @option{-ffp-contract=off} takes precedence precedence; and for example @option{-ffp-contract=off} takes precedence
over @option{-ffp-contract=fast}. You can override them at link time. over @option{-ffp-contract=fast}. You can override them at link time.
To enable debug info generation you need to supply @option{-g} at
compile-time. If any of the input files at link time were built
with debug info generation enabled the link will enable debug info
generation as well. Any elaborate debug info settings
like the dwarf level @option{-gdwarf-5} need to be explicitely repeated
at the linker command line and mixing different settings in different
translation units is discouraged.
If LTO encounters objects with C linkage declared with incompatible If LTO encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined types in separate translation units to be linked together (undefined
behavior according to ISO C99 6.2.7), a non-fatal diagnostic may be behavior according to ISO C99 6.2.7), a non-fatal diagnostic may be
...@@ -94,6 +94,10 @@ lto_write_options (void) ...@@ -94,6 +94,10 @@ lto_write_options (void)
: "-fno-pie"); : "-fno-pie");
} }
/* If debug info is enabled append -g. */
if (debug_info_level > DINFO_LEVEL_NONE)
append_to_collect_gcc_options (&temporary_obstack, &first_p, "-g");
/* Append options from target hook and store them to offload_lto section. */ /* Append options from target hook and store them to offload_lto section. */
if (lto_stream_offload_p) if (lto_stream_offload_p)
{ {
......
...@@ -265,6 +265,7 @@ merge_and_complain (struct cl_decoded_option **decoded_options, ...@@ -265,6 +265,7 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
case OPT_fshow_column: case OPT_fshow_column:
case OPT_fcommon: case OPT_fcommon:
case OPT_fgnu_tm: case OPT_fgnu_tm:
case OPT_g:
/* Do what the old LTO code did - collect exactly one option /* Do what the old LTO code did - collect exactly one option
setting per OPT code, we pick the first we encounter. setting per OPT code, we pick the first we encounter.
??? This doesn't make too much sense, but when it doesn't ??? This doesn't make too much sense, but when it doesn't
...@@ -617,6 +618,7 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts, ...@@ -617,6 +618,7 @@ append_compiler_options (obstack *argv_obstack, struct cl_decoded_option *opts,
case OPT_fopenacc: case OPT_fopenacc:
case OPT_fopenacc_dim_: case OPT_fopenacc_dim_:
case OPT_foffload_abi_: case OPT_foffload_abi_:
case OPT_g:
case OPT_O: case OPT_O:
case OPT_Ofast: case OPT_Ofast:
case OPT_Og: case OPT_Og:
...@@ -1399,6 +1401,10 @@ run_gcc (unsigned argc, char *argv[]) ...@@ -1399,6 +1401,10 @@ run_gcc (unsigned argc, char *argv[])
linker_output_rel = !strcmp (option->arg, "rel"); linker_output_rel = !strcmp (option->arg, "rel");
break; break;
case OPT_g:
/* Recognize -g0. */
skip_debug = option->arg && !strcmp (option->arg, "0");
break;
default: default:
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment