summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-06 07:48:31 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2018-01-06 07:48:31 +0000
commita82207f028bf94c0f1623d659112e33c3ad013cb (patch)
treef331f2a088761462fa192e70daa90951c7871fea
parent35e0d637762cf3eeb5c2d1df8fb804bc2f5c29c5 (diff)
downloadgcc-a82207f028bf94c0f1623d659112e33c3ad013cb.tar.gz
PR debug/83480
* toplev.c (process_options): Don't enable debug_nonbind_markers_p by default if flag_selective_schedling{,2}. Formatting fixes. * gcc.dg/pr83480.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256309 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/pr83480.c32
-rw-r--r--gcc/toplev.c13
4 files changed, 48 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 283f792dcf7..59f25abe8b5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2018-01-06 Jakub Jelinek <jakub@redhat.com>
+ PR debug/83480
+ * toplev.c (process_options): Don't enable debug_nonbind_markers_p
+ by default if flag_selective_schedling{,2}. Formatting fixes.
+
PR rtl-optimization/83682
* rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE
if it has non-VECTOR_MODE element mode.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7ebe12992e5..219d0d4865c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,8 @@
2018-01-06 Jakub Jelinek <jakub@redhat.com>
+ PR debug/83480
+ * gcc.dg/pr83480.c: New test.
+
PR rtl-optimization/83682
* gcc.target/i386/pr83682.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr83480.c b/gcc/testsuite/gcc.dg/pr83480.c
new file mode 100644
index 00000000000..7b57712eaee
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr83480.c
@@ -0,0 +1,32 @@
+/* PR debug/83480 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -g -fselective-scheduling2 -ftree-vectorize -freorder-blocks-algorithm=simple -fnon-call-exceptions -fno-guess-branch-probability -fno-peephole2 -fno-tree-sink -fno-tree-scev-cprop" } */
+
+signed char a, b;
+
+void
+foo (int x, int y)
+{
+ for (a = 1; a != 0; ++a)
+ ;
+
+ for (;;)
+ {
+ int c;
+
+ b %= (y != 0 && a != 0) + 1;
+ if (a != 0)
+ y = b;
+
+ for (c = 0; c < 50; ++c)
+ ++x;
+
+ if (a < 1)
+ {
+ while (x != 0)
+ ;
+
+ a /= 0; /* { dg-warning "division by zero" } */
+ }
+ }
+}
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 5faa3649af2..35d79680ab0 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1535,8 +1535,9 @@ process_options (void)
flag_var_tracking_uninit = flag_var_tracking;
if (flag_var_tracking_assignments == AUTODETECT_VALUE)
- flag_var_tracking_assignments = flag_var_tracking
- && !(flag_selective_scheduling || flag_selective_scheduling2);
+ flag_var_tracking_assignments
+ = (flag_var_tracking
+ && !(flag_selective_scheduling || flag_selective_scheduling2));
if (flag_var_tracking_assignments_toggle)
flag_var_tracking_assignments = !flag_var_tracking_assignments;
@@ -1550,8 +1551,12 @@ process_options (void)
"var-tracking-assignments changes selective scheduling");
if (debug_nonbind_markers_p == AUTODETECT_VALUE)
- debug_nonbind_markers_p = optimize && debug_info_level >= DINFO_LEVEL_NORMAL
- && (write_symbols == DWARF2_DEBUG || write_symbols == VMS_AND_DWARF2_DEBUG);
+ debug_nonbind_markers_p
+ = (optimize
+ && debug_info_level >= DINFO_LEVEL_NORMAL
+ && (write_symbols == DWARF2_DEBUG
+ || write_symbols == VMS_AND_DWARF2_DEBUG)
+ && !(flag_selective_scheduling || flag_selective_scheduling2));
if (flag_tree_cselim == AUTODETECT_VALUE)
{