aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2017-11-13 17:29:37 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2017-11-13 17:29:37 +0000
commit2a28a7523fb1c401ecd9a3a0548e3eb807ff9c2e (patch)
tree47f082389df2aaef9b825b3dfa12c9e66fe9b9da
parentc0264f676283bee5aee79591bd16b1b8f54b6f54 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/dwarf2out.c9
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);
}