aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c-family/ChangeLog7
-rw-r--r--gcc/c-family/c-indentation.c6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/c-c++-common/Wmisleading-indentation.c2
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index a2743d8..d8282d9 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,4 +1,9 @@
-gcc/c-family/ChangeLog:
+2016-01-10 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/69029
+ * c-indentation.c (should_warn_for_misleading_indentation):
+ Don't warn about do-while statements.
+
2016-01-07 Martin Sebor <msebor@redhat.com>
PR c/68966
diff --git a/gcc/c-family/c-indentation.c b/gcc/c-family/c-indentation.c
index 3c09336..cd9637d 100644
--- a/gcc/c-family/c-indentation.c
+++ b/gcc/c-family/c-indentation.c
@@ -202,6 +202,12 @@ should_warn_for_misleading_indentation (const token_indent_info &guard_tinfo,
if (line_table->seen_line_directive)
return false;
+ /* We can't usefully warn about do-while statements since the bodies of these
+ statements are always explicitly delimited at both ends, so control flow is
+ quite obvious. */
+ if (guard_tinfo.keyword == RID_DO)
+ return false;
+
/* If the token following the body is a close brace or an "else"
then while indentation may be sloppy, there is not much ambiguity
about control flow, e.g.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f233bb9..615a527 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2016-01-10 Patrick Palka <ppalka@gcc.gnu.org>
+
+ PR c++/69029
+ * c-c++-common/Wisleading-indentation.c: Augment test.
+
2016-01-10 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/69154
diff --git a/gcc/testsuite/c-c++-common/Wmisleading-indentation.c b/gcc/testsuite/c-c++-common/Wmisleading-indentation.c
index 491291c..25db8fe 100644
--- a/gcc/testsuite/c-c++-common/Wmisleading-indentation.c
+++ b/gcc/testsuite/c-c++-common/Wmisleading-indentation.c
@@ -890,6 +890,8 @@ fn_39 (void)
i < 10;
i++);
foo (i);
+
+ do foo (0); while (flagA);
}
/* We shouldn't complain about the following function. */