Emit discriminators for inlined call sites.

Message ID CY5PR21MB3542346DCE5393A1BEDAB13E91569@CY5PR21MB3542.namprd21.prod.outlook.com
State New, archived
Headers
Series Emit discriminators for inlined call sites. |

Commit Message

Eugene Rozenfeld Sept. 30, 2022, 6:28 a.m. UTC
  This change is based on commit 9fa26998a63d4b22b637ed8702520819e408a694
by Dehao Chen in vendors/google/heads/gcc-4_8.

gcc/ChangeLog:

        * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
---
 gcc/dwarf2out.cc | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--
2.25.1
  

Comments

Richard Biener Sept. 30, 2022, 12:32 p.m. UTC | #1
On Fri, Sep 30, 2022 at 8:28 AM Eugene Rozenfeld via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> This change is based on commit 9fa26998a63d4b22b637ed8702520819e408a694
> by Dehao Chen in vendors/google/heads/gcc-4_8.

OK

> gcc/ChangeLog:
>
>         * dwarf2out.cc (add_call_src_coords_attributes): Emit discriminators for inlined call sites.
> ---
>  gcc/dwarf2out.cc | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
> index 2df75904022..e81044b8c48 100644
> --- a/gcc/dwarf2out.cc
> +++ b/gcc/dwarf2out.cc
> @@ -24783,7 +24783,8 @@ add_call_src_coords_attributes (tree stmt, dw_die_ref die)
>    if (RESERVED_LOCATION_P (BLOCK_SOURCE_LOCATION (stmt)))
>      return;
>
> -  expanded_location s = expand_location (BLOCK_SOURCE_LOCATION (stmt));
> +  location_t locus = BLOCK_SOURCE_LOCATION (stmt);
> +  expanded_location s = expand_location (locus);
>
>    if (dwarf_version >= 3 || !dwarf_strict)
>      {
> @@ -24791,6 +24792,9 @@ add_call_src_coords_attributes (tree stmt, dw_die_ref die)
>        add_AT_unsigned (die, DW_AT_call_line, s.line);
>        if (debug_column_info && s.column)
>         add_AT_unsigned (die, DW_AT_call_column, s.column);
> +      unsigned discr = get_discriminator_from_loc (locus);
> +       if (discr != 0)
> +         add_AT_unsigned (die, DW_AT_GNU_discriminator, discr);
>      }
>  }
>
> --
> 2.25.1
  

Patch

diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index 2df75904022..e81044b8c48 100644
--- a/gcc/dwarf2out.cc
+++ b/gcc/dwarf2out.cc
@@ -24783,7 +24783,8 @@  add_call_src_coords_attributes (tree stmt, dw_die_ref die)
   if (RESERVED_LOCATION_P (BLOCK_SOURCE_LOCATION (stmt)))
     return;

-  expanded_location s = expand_location (BLOCK_SOURCE_LOCATION (stmt));
+  location_t locus = BLOCK_SOURCE_LOCATION (stmt);
+  expanded_location s = expand_location (locus);

   if (dwarf_version >= 3 || !dwarf_strict)
     {
@@ -24791,6 +24792,9 @@  add_call_src_coords_attributes (tree stmt, dw_die_ref die)
       add_AT_unsigned (die, DW_AT_call_line, s.line);
       if (debug_column_info && s.column)
        add_AT_unsigned (die, DW_AT_call_column, s.column);
+      unsigned discr = get_discriminator_from_loc (locus);
+       if (discr != 0)
+         add_AT_unsigned (die, DW_AT_GNU_discriminator, discr);
     }
 }