fix checks for gcc disable warning flags

GCC does not print a warning or error for unknown options if the options
are to disable warnings. Therefore, when checking for options starting
'-Wno-', also check the opposite enabling option.  This fixes the case
where e.g.  -Wno-implicit-fallthrough is incorrectly reported as supported
by gcc 5.4. To avoid missed warnings when using combinations of flags, such
as in test case "112 has arg", we limit the checking of for the positive
option to where the negative option is checked alone.
pull/3421/head
Bruce Richardson 7 years ago committed by Nirbheek Chauhan
parent f7a7059250
commit 162a58b493
  1. 5
      mesonbuild/compilers/c.py

@ -847,6 +847,11 @@ and other similar methods only support checking compiler arguments.
Using them to check linker arguments are never supported, and results
are likely to be wrong regardless of the compiler you are using.
'''.format(arg))
# some compilers, e.g. GCC, don't warn for unsupported warning-disable
# flags, so when we are testing a flag like "-Wno-forgotten-towel", also
# check the equivalent enable flag too "-Wforgotten-towel"
if len(args) == 1 and args[0].startswith('-Wno-'):
args.append('-W' + args[0][5:])
return self.compiles('int i;\n', env, extra_args=args)

Loading…
Cancel
Save