Re: checkpatch confused by pre-existing #endif

Andy Whitcroft
2009-01-14T16:46:31Z

On Tue, Jan 13, 2009 at 04:57:43PM -0500, Pavel Roskin wrote:
> Hello!
>
> This patch confuses checkpatch.pl from Linux 2.6.29-rc1:
>
> ====================
> --- foo.h.old 2009-01-13 16:48:22.000000000 -0500
> +++ foo.h 2009-01-13 16:48:18.000000000 -0500
> @@ -3,4 +3,8 @@
>
>
>
> +#ifdef FOOBAR
> +#define foo
> +#endif
> +
> #endif /* FOO_H */
> ====================
>
> $ scripts/checkpatch.pl foo.diff
> Can't use an undefined value as an ARRAY reference at
> scripts/checkpatch.pl line 453.
>
> Apparently, the last #endif causes some data to be popped from the stack
> for preprocessor directives. However, the corresponding #ifdef is
> outside the patch, so this fails.

Yes this should be fixed in the changes pushed up to Andrew. You can
confirm this using the version here:

http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/checkpatch.pl-testing

-apw