aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-11-21 08:50:15 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2017-11-21 08:50:15 +0100
commit83087d6521689c6200065537640b953972fbd76b (patch)
tree06169e53be962fd05c6cffbb4b25c7a7bdc25b7b
parent644f013227facdd53e313b2cb60745cedfe0c6c8 (diff)
downloadgcc-83087d6521689c6200065537640b953972fbd76b.zip
gcc-83087d6521689c6200065537640b953972fbd76b.tar.gz
gcc-83087d6521689c6200065537640b953972fbd76b.tar.bz2
re PR debug/82933 (valgrind error in set_cur_line_info_table with -g)
PR debug/82933 * run-rtl-passes.c: Include debug.h. (run_rtl_passes): Call debug_hooks->assembly_start. * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked multiple times. * gcc.dg/rtl/x86_64/pr82933.c: New test. From-SVN: r254987
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c3
-rw-r--r--gcc/run-rtl-passes.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c4
5 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8efe4b7..1c3aaed 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2017-11-21 Jakub Jelinek <jakub@redhat.com>
+ PR debug/82933
+ * run-rtl-passes.c: Include debug.h.
+ (run_rtl_passes): Call debug_hooks->assembly_start.
+ * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
+ multiple times.
+
PR target/82981
* internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
OPTAB_DIRECT in calls to expand_simple_binop.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 76a538f..7fd6ae3 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -27507,6 +27507,9 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED)
static void
dwarf2out_assembly_start (void)
{
+ if (text_section_line_info)
+ return;
+
#ifndef DWARF2_LINENO_DEBUGGING_INFO
ASM_GENERATE_INTERNAL_LABEL (text_section_label, TEXT_SECTION_LABEL, 0);
ASM_GENERATE_INTERNAL_LABEL (text_end_label, TEXT_END_LABEL, 0);
diff --git a/gcc/run-rtl-passes.c b/gcc/run-rtl-passes.c
index e1ac4bd..dfb5d53 100644
--- a/gcc/run-rtl-passes.c
+++ b/gcc/run-rtl-passes.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "bitmap.h"
#include "df.h"
#include "regs.h"
+#include "debug.h" /* for debug_hooks. */
#include "insn-attr-common.h" /* for INSN_SCHEDULING. */
#include "insn-attr.h" /* for init_sched_attrs. */
#include "run-rtl-passes.h"
@@ -43,6 +44,9 @@ run_rtl_passes (char *initial_pass_name)
cfun->pass_startwith = initial_pass_name;
max_regno = max_reg_num ();
+ /* cgraphunit.c normally handles this. */
+ (*debug_hooks->assembly_start) ();
+
/* Pass "expand" normally sets this up. */
#ifdef INSN_SCHEDULING
init_sched_attrs ();
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 12a217f..32fce8c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2017-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/82933
+ * gcc.dg/rtl/x86_64/pr82933.c: New test.
+
2017-11-20 Eric Gallager <egall@gwmail.gwu.edu>
PR preprocessor/81794
diff --git a/gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c b/gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c
new file mode 100644
index 0000000..68ffe45
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c
@@ -0,0 +1,4 @@
+/* { dg-do run { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
+/* { dg-options "-g" } */
+
+#include "into-cfglayout.c"