On Fri, Nov 25, 2011 at 12:01 AM, Dave Martin <dave.mar...@linaro.org> wrote:
> On Thu, Nov 24, 2011 at 08:28:53AM +1300, Michael Hope wrote:
>> On Thu, Nov 24, 2011 at 6:51 AM, Dave Martin <dave.mar...@linaro.org> wrote:
>> > On Wed, Nov 23, 2011 at 09:41:52PM +0700, tknv wrote:
>> >> Thank you very much, quick reply.
>> >> Yes, It is right," it may be better to improve the code instead of 
>> >> turning of the error check."
>> >> But this time I would like to testing some modules at first even any
>> >> warnings occur at other modules.
>> >> I removed -Werror from Makefile at modules have warnings.
>> >> By the way, KBUILD_CFLAGS's -Werror does not work correct ?
>> >
>> > Can you re-run your build with V=1 on the make command line, and post
>> > the log so I can see what happens?
>> >
>> > I still don't feel I have enough information to understand exactly
>> > what's happening.
>> >
>> > Additional CFLAGS get added at different places in the Makefiles, so
>> > it is possible that your change has been overridden somewhere else.
>>
>> A side note:  adding a -Wno-error to the end of a set of flags cancels
>> out any earlier -Werror.  I needed to use this recently with a build
>> system that unconditionally turned on -Werror and a g++-4.1 that was a
>> bit wrong in it's warnings.
>
> Hmmm, that may be the cause.
>
> The perf tools' script in the Linux tree for example has:
>
>        # Treat warnings as errors unless directed not to
>        ifneq ($(WERROR),0)
>                CFLAGS_WERROR := -Werror
>        endif
>
> ...which isn't going to work if gcc is excessive about the errors it
> flags up, given the -W options in the top-level Makefile.
> Adding -Wno-array-bounds might work.
>
>
> Interestingly, I can't seem to make gcc-4.5.2 report an array bounds
> error, even for obviously wrong code:
>
>        int f(void)
>        {
>                int x[1];
>
>                return x[2];
>        }
>
> gcc -O3 -Wall -Wextra -Warray-bounds -Werror -c tst.c
>
> ...reports no error.  gcc "did what I asked", but the code is clearly
> nonsensical, and doesn't describe any possible C function:

This is OK with GCC 4.5:

michaelh@ursa2:~/linaro/bugs$
/tools/toolchains/arch/armv7l/gcc-linaro-4.6-2011.11-armv7l-natty-cbuild205-tcpanda03-cortexa9r1/bin/gcc
-S -O2 -Warray-bounds bounds.c
bounds.c: In function 'f':
bounds.c:5:12: warning: array subscript is above array bounds [-Warray-bounds]

I tracked down the explicit -Werror I saw earlier to gcc/lto-plugin:

lto-plugin/Makefile.in:AM_CFLAGS = -Wall -Werror

In this case gcc-4.1 (don't ask) was a bit enthusiastic about the
warnings.  Adding a -Wno-error to CFLAGS was better than patching the
Makefile.

-- Michael

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to