diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2021-05-11 17:55:18 +0200 |
---|---|---|
committer | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2021-05-12 10:54:08 +0200 |
commit | 1ecd1e6c894fbdbc10fdcfee419922b24e1115ee (patch) | |
tree | 1da6e33303882d9969f10ed1ebe404561905a17c /gcc | |
parent | dd39327854de1d18110fada5f8a7a4630da6d144 (diff) | |
download | gcc-1ecd1e6c894fbdbc10fdcfee419922b24e1115ee.zip gcc-1ecd1e6c894fbdbc10fdcfee419922b24e1115ee.tar.gz gcc-1ecd1e6c894fbdbc10fdcfee419922b24e1115ee.tar.bz2 |
Fix ICE in output_rnglists, at dwarf2out.c:12294
In this testcase the compile unit consists of a single
text section with a single embedded DECL_IGNORED_P function.
So we have a kind of multi-range text section here.
To avoid an ICE in output_rnglists we need to make sure
that have_multiple_function_sections is set to true.
This is a regression from
e69ac020372 ("Add line debug info for virtual thunks")
2021-05-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR debug/100515
* dwarf2out.c (dwarf2out_finish): Set
have_multiple_function_sections with multi-range text_section.
* gcc.dg/debug/dwarf2/pr100515.c: New testcase.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/dwarf2out.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c | 19 |
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 8fc8298..b99598e 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -31956,6 +31956,7 @@ dwarf2out_finish (const char *filename) add_AT_addr (main_comp_unit_die, DW_AT_entry_pc, const0_rtx, true); add_ranges (NULL); + have_multiple_function_sections = true; } } diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c new file mode 100644 index 0000000..7c72fcd --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr100515.c @@ -0,0 +1,19 @@ +/* PR debug/100515 */ +/* { dg-do compile } */ +/* { dg-options "-g -O2 -fopenmp" } */ + +void +foo (int x) +{ +#pragma omp taskloop + for (int i = 0; i < x; i++) + ; +} + +void +bar (int x) +{ +#pragma omp taskloop + for (int i = 0; i < x; i++) + ; +} |