lto-wrapper: Pass through -funwind-tables and -fasynchronous-unwind-tables
authorAndreas Schwab <schwab@suse.de>
Tue, 17 Jan 2023 15:47:13 +0000 (16:47 +0100)
committerAndreas Schwab <schwab@suse.de>
Thu, 9 Feb 2023 08:57:44 +0000 (09:57 +0100)
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 is 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

index 11c4d1b..fe8c5f6 100644 (file)
@@ -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: