diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2017-11-13 17:29:37 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2017-11-13 17:29:37 +0000 |
commit | 2a28a7523fb1c401ecd9a3a0548e3eb807ff9c2e (patch) | |
tree | 47f082389df2aaef9b825b3dfa12c9e66fe9b9da | |
parent | c0264f676283bee5aee79591bd16b1b8f54b6f54 (diff) | |
download | gcc-2a28a7523fb1c401ecd9a3a0548e3eb807ff9c2e.zip gcc-2a28a7523fb1c401ecd9a3a0548e3eb807ff9c2e.tar.gz gcc-2a28a7523fb1c401ecd9a3a0548e3eb807ff9c2e.tar.bz2 |
re PR lto/81351 (Many LTO testcases FAIL)
PR lto/81351
* dwarf2out.c (do_eh_frame): New static variable.
(dwarf2out_begin_prologue): Set it.
(dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
From-SVN: r254700
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bf9a01f..543a8e1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-11-13 Eric Botcazou <ebotcazou@adacore.com> + + PR lto/81351 + * dwarf2out.c (do_eh_frame): New static variable. + (dwarf2out_begin_prologue): Set it. + (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame. + 2017-11-13 Jan Hubicka <hubicka@ucw.cz> * tree-ssa-coalesce.c (coalesce_cost): Fix formating. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index df85467..1c08a2b 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -284,6 +284,9 @@ static void dwarf2out_note_section_used (void); personality CFI. */ static GTY(()) rtx current_unit_personality; +/* Whether an eh_frame section is required. */ +static GTY(()) bool do_eh_frame = false; + /* .debug_rnglists next index. */ static unsigned int rnglist_idx; @@ -1063,6 +1066,10 @@ dwarf2out_begin_prologue (unsigned int line ATTRIBUTE_UNUSED, if (!do_frame) return; + /* Unlike the debug version, the EH version of frame unwind info is a per- + function setting so we need to record whether we need it for the unit. */ + do_eh_frame |= dwarf2out_do_eh_frame (); + /* Cater to the various TARGET_ASM_OUTPUT_MI_THUNK implementations that emit insns as rtx but bypass the bulk of rest_of_compilation, which would include pass_dwarf2_frame. If we've not created the FDE yet, @@ -1179,7 +1186,7 @@ dwarf2out_frame_finish (void) output_call_frame_info (0); /* Output another copy for the unwinder. */ - if (dwarf2out_do_eh_frame ()) + if (do_eh_frame) output_call_frame_info (1); } |