SFN: don't drop markers for skipping var-tracking
authorAlexandre Oliva <aoliva@redhat.com>
Tue, 19 Dec 2017 17:50:54 +0000 (17:50 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Tue, 19 Dec 2017 17:50:54 +0000 (17:50 +0000)
Although debug markers are more useful when bind stmts are placed
among them, there is value in keeping them even when VTA limits are
exceeded.

for  gcc/ChangeLog

PR debug/83422
* var-tracking.c (vt_debug_insns_local): Do not drop markers.
(variable_tracking_main_1): Keep markers even when VTA fails.

for  gcc/testsuite/ChangeLog

PR debug/83422
* gcc.dg/pr83422.c: New.

From-SVN: r255834

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr83422.c [new file with mode: 0644]
gcc/var-tracking.c

index 0552a935af6b87eda3966466e56e45cb1d468913..328ce281e812b47de51db330c87ba693ed198b50 100644 (file)
@@ -1,5 +1,9 @@
 2017-12-19  Alexandre Oliva <aoliva@redhat.com>
 
+       PR debug/83422
+       * var-tracking.c (vt_debug_insns_local): Do not drop markers.
+       (variable_tracking_main_1): Keep markers even when VTA fails.
+
        PR bootstrap/83396
        * cfgexpand.c (expand_gimple_basic_block): Expand label first,
        even if there are markers before it.
index aabbe566741f12cb6c4e21eb82f650b1301ecaec..81f96c6ce079e4af89f9d44abf6293b22251cad7 100644 (file)
@@ -1,3 +1,8 @@
+2017-12-19  Alexandre Oliva <aoliva@redhat.com>
+
+       PR debug/83422
+       * gcc.dg/pr83422.c: New.
+
 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
 
        PR testsuite/83454
diff --git a/gcc/testsuite/gcc.dg/pr83422.c b/gcc/testsuite/gcc.dg/pr83422.c
new file mode 100644 (file)
index 0000000..adbf759
--- /dev/null
@@ -0,0 +1,9 @@
+/* PR debug/83422 */
+/* { dg-do compile } */
+/* { dg-options "-O -g --param=max-vartrack-size=1" } */
+
+int
+foo(int i, int j, int k)
+{
+   return i + j + k;
+}
index aa8a605b772f6f75fae9c63a2125c95d7cedcb86..4a96a039d14b6879eca36c17765ff674ca360c71 100644 (file)
@@ -10338,12 +10338,9 @@ delete_vta_debug_insns (void)
    handled as well..  */
 
 static void
-vt_debug_insns_local (bool skipped)
+vt_debug_insns_local (bool skipped ATTRIBUTE_UNUSED)
 {
-  /* ??? Just skip it all for now.  If we skipped the global pass,
-     arrange for stmt markers to be dropped as well.  */
-  if (skipped)
-    cfun->debug_nonbind_markers = 0;
+  /* ??? Just skip it all for now.  */
   delete_vta_debug_insns ();
 }
 
@@ -10445,8 +10442,6 @@ variable_tracking_main_1 (void)
     {
       vt_finalize ();
 
-      cfun->debug_nonbind_markers = 0;
-
       delete_vta_debug_insns ();
 
       /* This is later restored by our caller.  */