[PATCH] gdb/microblaze-tdep.c: Check whether less than zero in conditional expression

Chen Gang gang.chen.5i5j@gmail.com
Thu Jul 31 19:10:00 GMT 2014


On 07/24/2014 06:06 AM, Chen Gang wrote:
> 
>> > I do not see this error message in my build which uses -Wall.
>> > What is your build environment?  Which version of GCC?
>> > 
> Originally, I use "CFLAGS=-W -g -O2" pass to configure. And '-W' is
> different from '-Wall'.  '-W' reports real 'all' warnings which can be
> found by compiler, but '-Wall' reports most valuable warnings.

Sorry, after check details ("info gcc" in Chapter "Warning Options"),
What I said is incorrect. I list the related contents below (-W means
-Wextra, it can be used together with -Wall):

`-Wall'
     This enables all the warnings about constructions that some users
     consider questionable, and that are easy to avoid (or modify to
     prevent the warning), even in conjunction with macros.  This also
     enables some language-specific warnings described in *note C++
     Dialect Options:: and *note Objective-C and Objective-C++ Dialect
     Options::.

     `-Wall' turns on the following warning flags:

          -Waddress
          -Warray-bounds (only with `-O2')
          -Wc++11-compat
          -Wchar-subscripts
          -Wenum-compare (in C/Objc; this is on by default in C++)
          -Wimplicit-int (C and Objective-C only)
          -Wimplicit-function-declaration (C and Objective-C only)
          -Wcomment
          -Wformat
          -Wmain (only for C/ObjC and unless `-ffreestanding')
          -Wmaybe-uninitialized
          -Wmissing-braces
          -Wnonnull
          -Wparentheses
          -Wpointer-sign
          -Wreorder
          -Wreturn-type
          -Wsequence-point
          -Wsign-compare (only in C++)
          -Wstrict-aliasing
          -Wstrict-overflow=1
          -Wswitch
          -Wtrigraphs
          -Wuninitialized
          -Wunknown-pragmas
          -Wunused-function
          -Wunused-label
          -Wunused-value
          -Wunused-variable
          -Wvolatile-register-var

     Note that some warning flags are not implied by `-Wall'.  Some of
     them warn about constructions that users generally do not consider
     questionable, but which occasionally you might wish to check for;
     others warn about constructions that are necessary or hard to
     avoid in some cases, and there is no simple way to modify the code
     to suppress the warning. Some of them are enabled by `-Wextra' but
     many of them must be enabled individually.

`-Wextra'
     This enables some extra warning flags that are not enabled by
     `-Wall'. (This option used to be called `-W'.  The older name is
     still supported, but the newer name is more descriptive.)

          -Wclobbered
          -Wempty-body
          -Wignored-qualifiers
          -Wmissing-field-initializers
          -Wmissing-parameter-type (C only)
          -Wold-style-declaration (C only)
          -Woverride-init
          -Wsign-compare
          -Wtype-limits
          -Wuninitialized
          -Wunused-parameter (only with `-Wunused' or `-Wall')
          -Wunused-but-set-parameter (only with `-Wunused' or `-Wall')

     The option `-Wextra' also prints warning messages for the
     following cases:
        * A pointer is compared against integer zero with `<', `<=',
          `>', or `>='.

        * (C++ only) An enumerator and a non-enumerator both appear in a
          conditional expression.

        * (C++ only) Ambiguous virtual bases.

        * (C++ only) Subscripting an array that has been declared
          `register'.

        * (C++ only) Taking the address of a variable that has been
          declared `register'.

        * (C++ only) A base class is not initialized in a derived
          class' copy constructor.


Thanks.
-- 
Chen Gang

Open share and attitude like air water and life which God blessed



More information about the Gdb-patches mailing list