diff options
author | Jakub Jelinek <jakub@redhat.com> | 2017-11-21 08:50:15 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2017-11-21 08:50:15 +0100 |
commit | 83087d6521689c6200065537640b953972fbd76b (patch) | |
tree | 06169e53be962fd05c6cffbb4b25c7a7bdc25b7b | |
parent | 644f013227facdd53e313b2cb60745cedfe0c6c8 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 3 | ||||
-rw-r--r-- | gcc/run-rtl-passes.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/rtl/x86_64/pr82933.c | 4 |
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" |