Wmisleading-indentation.c: add more test cases for PR c/68187

gcc/testsuite/ChangeLog:
	PR c/68187
	* c-c++-common/Wmisleading-indentation.c (test43_a): New test
	case.
	(test43_b): Likewise.
	(test43_c): Likewise.
	(test43_d): Likewise.
	(test43_e): Likewise.
	(test43_f): Likewise.
	(test43_g): Likewise.
	(test44_a): Likewise.
	(test44_b): Likewise.
	(test44_c): Likewise.
	(test44_d): Likewise.
	(test44_e): Likewise.

From-SVN: r234146
This commit is contained in:
David Malcolm 2016-03-11 19:54:43 +00:00 committed by David Malcolm
parent 318c120418
commit 3edc5da4a6
2 changed files with 185 additions and 0 deletions

View File

@ -1,3 +1,20 @@
2016-03-11 David Malcolm <dmalcolm@redhat.com>
PR c/68187
* c-c++-common/Wmisleading-indentation.c (test43_a): New test
case.
(test43_b): Likewise.
(test43_c): Likewise.
(test43_d): Likewise.
(test43_e): Likewise.
(test43_f): Likewise.
(test43_g): Likewise.
(test44_a): Likewise.
(test44_b): Likewise.
(test44_c): Likewise.
(test44_d): Likewise.
(test44_e): Likewise.
2016-03-11 David Malcolm <dmalcolm@redhat.com>
PR c/70085

View File

@ -1070,3 +1070,171 @@ int pr70085 (int x, int y)
return -1;
}
#undef ENABLE_FEATURE
/* Additional test coverage for PR c/68187, with various locations for a
pair of aligned statements ("foo (2);" and "foo (3);") that may or may
not be misleadingly indented. */
/* Before the "}".
The two statements aren't visually "within" the above line, so we
shouldn't warn. */
void
test43_a (void)
{
if (flagA) {
foo (1);
} else if (flagB)
foo (2);
foo (3);
}
/* Aligned with the "}".
Again, the two statements aren't visually "within" the above line, so we
shouldn't warn. */
void
test43_b (void)
{
if (flagA) {
foo (1);
} else if (flagB)
foo (2);
foo (3);
}
/* Indented between the "}" and the "else".
The two statements are indented "within" the line above, so appear that
they would be guarded together. We should warn about this. */
void
test43_c (void)
{
if (flagA) {
foo (1);
} else if (flagB) /* { dg-message "...this .if. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Aligned with the "else". Likewise, we should warn. */
void
test43_d (void)
{
if (flagA) {
foo (1);
} else if (flagB) /* { dg-message "...this .if. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Indented between the "else" and the "if". Likewise, we should warn. */
void
test43_e (void)
{
if (flagA) {
foo (1);
} else if (flagB) /* { dg-message "...this .if. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Aligned with the "if". Likewise, we should warn. */
void
test43_f (void)
{
if (flagA) {
foo (1);
} else if (flagB) /* { dg-message "...this .else. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Indented more than the "if". Likewise, we should warn. */
void
test43_g (void)
{
if (flagA) {
foo (1);
} else if (flagB) /* { dg-message "...this .if. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Again, but without the 2nd "if". */
/* Before the "}".
As before, the two statements aren't visually "within" the above line,
so we shouldn't warn. */
void
test44_a (void)
{
if (flagA) {
foo (1);
} else
foo (2);
foo (3);
}
/* Aligned with the "}".
As before, the two statements aren't visually "within" the above line,
so we shouldn't warn. */
void
test44_b (void)
{
if (flagA) {
foo (1);
} else
foo (2);
foo (3);
}
/* Indented between the "}" and the "else".
The two statements are indented "within" the line above, so appear that
they would be guarded together. We should warn about this. */
void
test44_c (void)
{
if (flagA) {
foo (1);
} else /* { dg-message "...this .else. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Aligned with the "else". Likewise, we should warn. */
void
test44_d (void)
{
if (flagA) {
foo (1);
} else /* { dg-message "...this .else. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}
/* Indented more than the "else". Likewise, we should warn. */
void
test44_e (void)
{
if (flagA) {
foo (1);
} else /* { dg-message "...this .else. clause" } */
foo (2);
foo (3); /* { dg-warning "statement is indented" } */
}