summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei Zhang <thestig@chromium.org>2015-12-23 21:44:27 -0800
committerLei Zhang <thestig@chromium.org>2015-12-23 21:44:27 -0800
commit9fb1413926b55727d8f00dd54fbe144a883d4873 (patch)
treea09e4361e7379fe6987ec9372ee1184b1064def4
parentd4192c7774dac4b2fb30facb3deb3453e03c88fc (diff)
downloadpdfium-9fb1413926b55727d8f00dd54fbe144a883d4873.tar.xz
Make the standalone msvs_disabled_warnings block match Chromium's.
TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/1542353002 .
-rw-r--r--build/standalone.gypi99
1 files changed, 93 insertions, 6 deletions
diff --git a/build/standalone.gypi b/build/standalone.gypi
index d8c1e47894..00bbd4f235 100644
--- a/build/standalone.gypi
+++ b/build/standalone.gypi
@@ -190,12 +190,99 @@
'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
'CharacterSet': '1',
},
- 'msvs_disabled_warnings': [4800, 4996, 4456, 4457, 4458, 4459, 4091],
- # 4456, 4457, 4458, 4459 are variable shadowing warnings that are new in
- # VS2015.
- # C4091: 'typedef ': ignored on left of 'X' when no variable is
- # declared.
- # This happens in a number of Windows headers with VS 2015.
+ 'msvs_disabled_warnings': [
+ # ####
+ # This section is PDFium specific.
+ # ####
+
+ # C4800: forcing value to bool 'true' or 'false' (performance warning)
+ 4800,
+
+ # ####
+ # This section should match Chromium's build/common.gypi.
+ # ####
+
+ # C4091: 'typedef ': ignored on left of 'X' when no variable is
+ # declared.
+ # This happens in a number of Windows headers. Dumb.
+ 4091,
+
+ # C4127: conditional expression is constant
+ # This warning can in theory catch dead code and other problems, but
+ # triggers in far too many desirable cases where the conditional
+ # expression is either set by macros or corresponds some legitimate
+ # compile-time constant expression (due to constant template args,
+ # conditionals comparing the sizes of different types, etc.). Some of
+ # these can be worked around, but it's not worth it.
+ 4127,
+
+ # C4351: new behavior: elements of array 'array' will be default
+ # initialized
+ # This is a silly "warning" that basically just alerts you that the
+ # compiler is going to actually follow the language spec like it's
+ # supposed to, instead of not following it like old buggy versions
+ # did. There's absolutely no reason to turn this on.
+ 4351,
+
+ # C4355: 'this': used in base member initializer list
+ # It's commonly useful to pass |this| to objects in a class'
+ # initializer list. While this warning can catch real bugs, most of
+ # the time the constructors in question don't attempt to call methods
+ # on the passed-in pointer (until later), and annotating every legit
+ # usage of this is simply more hassle than the warning is worth.
+ 4355,
+
+ # C4503: 'identifier': decorated name length exceeded, name was
+ # truncated
+ # This only means that some long error messages might have truncated
+ # identifiers in the presence of lots of templates. It has no effect
+ # on program correctness and there's no real reason to waste time
+ # trying to prevent it.
+ 4503,
+
+ # Warning C4589 says: "Constructor of abstract class ignores
+ # initializer for virtual base class." Disable this warning because it
+ # is flaky in VS 2015 RTM. It triggers on compiler generated
+ # copy-constructors in some cases.
+ 4589,
+
+ # C4611: interaction between 'function' and C++ object destruction is
+ # non-portable
+ # This warning is unavoidable when using e.g. setjmp/longjmp. MSDN
+ # suggests using exceptions instead of setjmp/longjmp for C++, but
+ # Chromium code compiles without exception support. We therefore have
+ # to use setjmp/longjmp for e.g. JPEG decode error handling, which
+ # means we have to turn off this warning (and be careful about how
+ # object destruction happens in such cases).
+ 4611,
+
+ # TODO(thestig): These warnings are level 4. They will be slowly
+ # removed as code is fixed.
+ 4100, # Unreferenced formal parameter
+ 4121, # Alignment of a member was sensitive to packing
+ 4244, # Conversion from 'type1' to 'type2', possible loss of data
+ 4481, # Nonstandard extension used: override specifier 'keyword'
+ 4505, # Unreferenced local function has been removed
+ 4510, # Default constructor could not be generated
+ 4512, # Assignment operator could not be generated
+ 4610, # Object can never be instantiated
+ 4838, # Narrowing conversion. Doesn't seem to be very useful.
+ 4995, # 'X': name was marked as #pragma deprecated
+ 4996, # 'X': was declared deprecated (for GetVersionEx).
+
+ # These are variable shadowing warnings that are new in VS2015. We
+ # should work through these at some point -- they may be removed from
+ # the RTM release in the /W4 set.
+ 4456, 4457, 4458, 4459,
+
+ # TODO(brucedawson): http://crbug.com/554200 4312 is a VS
+ # 2015 64-bit warning for integer to larger pointer
+ 4312,
+
+ # ####
+ # Do not add PDFium specific entries here. Add them to the top.
+ # ####
+ ],
'msvs_settings': {
'VCCLCompilerTool': {
'MinimalRebuild': 'false',