From 83087d6521689c6200065537640b953972fbd76b Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 21 Nov 2017 08:50:15 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 3 +++ gcc/run-rtl-passes.c | 4 ++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c | 4 ++++ 5 files changed, 22 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8efe4b7c59f..1c3aaede5ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2017-11-21 Jakub Jelinek + 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 76a538f1ff9..7fd6ae37fd2 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 e1ac4bd0954..dfb5d53eb0d 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 12a217f2b46..32fce8c4421 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-11-21 Jakub Jelinek + + PR debug/82933 + * gcc.dg/rtl/x86_64/pr82933.c: New test. + 2017-11-20 Eric Gallager 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 00000000000..68ffe4582d7 --- /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" -- 2.30.2