diff mbox series

[Ada] Minor tweak to line debug info

Message ID 2271602.LOXG3kJILP@fomalhaut
State New
Headers show
Series [Ada] Minor tweak to line debug info | expand

Commit Message

Eric Botcazou Sept. 12, 2020, 10:42 a.m. UTC
This prevents the SLOC of the expression for a tag from being present in the 
line debug info every time it is referenced for coverage purposes.

Tested on x86_64-suse-linux, applied on the mainline.


2020-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Object_Declaration>: Clear
	the SLOC of the expression of a tag.
diff mbox series

Patch

diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index e3d71bca40f..aa4393c24b7 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -6476,6 +6476,7 @@  gnat_to_gnu (Node_Id gnat_node)
 
 	  gnu_expr = gnat_to_gnu (Expression (gnat_node));
 
+	  /* First deal with erroneous expressions.  */
 	  if (TREE_CODE (gnu_expr) == ERROR_MARK)
 	    {
 	      /* If this is a named number for which we cannot manipulate
@@ -6485,6 +6486,11 @@  gnat_to_gnu (Node_Id gnat_node)
 	      else if (type_annotate_only)
 		gnu_expr = NULL_TREE;
 	    }
+
+	  /* Then a special case: we do not want the SLOC of the expression
+	     of the tag to pop up every time it is referenced somewhere.  */
+	  else if (EXPR_P (gnu_expr) && Is_Tag (gnat_temp))
+	    SET_EXPR_LOCATION (gnu_expr, UNKNOWN_LOCATION);
 	}
       else
 	gnu_expr = NULL_TREE;