Fix -Wmisleading indentation false-positive for do-while statement

gcc/c-family/ChangeLog:

	PR c++/69029
	* c-indentation.c (should_warn_for_misleading_indentation):
	Don't warn about do-while statements.

gcc/testsuite/ChangeLog:

	PR c++/69029
	* c-c++-common/Wisleading-indentation.c: Augment test.

From-SVN: r232202
This commit is contained in:
Patrick Palka 2016-01-10 16:39:39 +00:00
parent fd42eed899
commit 21efdd809b
4 changed files with 19 additions and 1 deletions

View File

@ -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

View File

@ -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.

View File

@ -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

View File

@ -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. */