tree 472cf85c05fdcafe028e5b8140729327afcffeea
parent ebfdc40969f24fc0cdd1349835d36e8ebae05374
author Joe Perches <joe@perches.com> 1407366629 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1407373287 -0700

checkpatch: warn on unnecessary else after return or break

Using an else following a break or return can unnecessarily indent code
blocks.

ie:
	for (i = 0; i < 100; i++) {
		int foo = bar();
		if (foo < 1)
			break;
		else
			usleep(1);
	}

is generally better written as:

	for (i = 0; i < 100; i++) {
		int foo = bar();
		if (foo < 1)
			break;
		usleep(1);
	}

Warn when a bare else statement is preceded by a break or return
indented 1 tab more than the else.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
