diff options
author | Richard Henderson <rth@redhat.com> | 2003-04-02 09:23:01 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2003-04-02 09:23:01 -0800 |
commit | ad5eeaa9c1e1fb22dd5bf8631eb91d9b62733584 (patch) | |
tree | dc74dae079809067eed1f30ad0dbc3a4ba058ee3 | |
parent | be12c2b0cc10bf0e7429b842c9e73067c10f8e85 (diff) | |
download | gcc-ad5eeaa9c1e1fb22dd5bf8631eb91d9b62733584.zip gcc-ad5eeaa9c1e1fb22dd5bf8631eb91d9b62733584.tar.gz gcc-ad5eeaa9c1e1fb22dd5bf8631eb91d9b62733584.tar.bz2 |
dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an optimization when flag_exceptions not enabled.
* dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
optimization when flag_exceptions not enabled.
From-SVN: r65169
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 16 |
2 files changed, 14 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a1b00f..76631c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-04-02 Richard Henderson <rth@redhat.com> + + * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an + optimization when flag_exceptions not enabled. + 2003-04-02 Vladimir Makarov <vmakarov@redhat.com> * config/rs6000/rs6000.c diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 3c6dec7..dbe8fdf 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -1918,7 +1918,7 @@ output_call_frame_info (for_eh) dw_fde_ref fde; dw_cfi_ref cfi; char l1[20], l2[20], section_start_label[20]; - int any_lsda_needed = 0; + bool any_lsda_needed = false; char augmentation[6]; int augmentation_size; int fde_encoding = DW_EH_PE_absptr; @@ -1929,17 +1929,19 @@ output_call_frame_info (for_eh) if (fde_table_in_use == 0) return; - /* If we don't have any functions we'll want to unwind out of, don't emit any - EH unwind information. */ + /* If we don't have any functions we'll want to unwind out of, don't + emit any EH unwind information. Note that if exceptions aren't + enabled, we won't have collected nothrow information, and if we + asked for asynchronous tables, we always want this info. */ if (for_eh) { - int any_eh_needed = flag_asynchronous_unwind_tables; + bool any_eh_needed = !flag_exceptions || flag_asynchronous_unwind_tables; for (i = 0; i < fde_table_in_use; i++) if (fde_table[i].uses_eh_lsda) - any_eh_needed = any_lsda_needed = 1; + any_eh_needed = any_lsda_needed = true; else if (! fde_table[i].nothrow) - any_eh_needed = 1; + any_eh_needed = true; if (! any_eh_needed) return; @@ -2077,7 +2079,7 @@ output_call_frame_info (for_eh) fde = &fde_table[i]; /* Don't emit EH unwind info for leaf functions that don't need it. */ - if (!flag_asynchronous_unwind_tables && for_eh + if (for_eh && !flag_asynchronous_unwind_tables && flag_exceptions && (fde->nothrow || fde->all_throwers_are_sibcalls) && !fde->uses_eh_lsda) continue; |