The -funwind-tables and -fasynchronous-unwind-tables options are relevant
for the output pass, so they need to be passed through by the LTO wrapper.
Otherwise, dwarf2out_assembly_start may output a ".cfi_sections
.debug_frame" directive when debug info was enabled even if every
translation unit was compiled with -funwind-tables.

gcc/
        * lto-wrapper.cc (merge_and_complain): Handle
        -funwind-tables and -fasynchronous-unwind-tables.
        (append_compiler_options): Likewise.
---
 gcc/lto-wrapper.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/lto-wrapper.cc b/gcc/lto-wrapper.cc
index 11c4d1b38a4..fe8c5f6e80d 100644
--- a/gcc/lto-wrapper.cc
+++ b/gcc/lto-wrapper.cc
@@ -335,6 +335,8 @@ merge_and_complain (vec<cl_decoded_option> &decoded_options,
 
        case OPT_fopenmp:
        case OPT_fopenacc:
+       case OPT_fasynchronous_unwind_tables:
+       case OPT_funwind_tables:
          /* For selected options we can merge conservatively.  */
          if (existing_opt == -1)
            decoded_options.safe_push (*foption);
@@ -737,6 +739,8 @@ append_compiler_options (obstack *argv_obstack, 
vec<cl_decoded_option> opts)
        case OPT_fopenacc_dim_:
        case OPT_foffload_abi_:
        case OPT_fcf_protection_:
+       case OPT_fasynchronous_unwind_tables:
+       case OPT_funwind_tables:
        case OPT_g:
        case OPT_O:
        case OPT_Ofast:
-- 
2.39.1


-- 
Andreas Schwab, SUSE Labs, sch...@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE  1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."

Reply via email to