Skip to content
  • Ondřej Surý's avatar
    Set WarningLevel to Level1 for Release, treat warnings as errors · 789d253e
    Ondřej Surý authored
    Our vcxproj files set the WarningLevel to Level3, which is too verbose
    for a code that needs to be portable.  That basically leads to ignoring
    all the errors that MSVC produces.  This commits downgrades the
    WarningLevel to Level1 and enables treating warnings as errors for
    Release builds.  For the Debug builds the WarningLevel got upgraded to
    Level4, and treating warnings as errors is explicitly disabled.
    
    We should eventually make the code clean of all MSVC warnings, but it's
    a long way to go for Level4, so it's more reasonable to start at Level1.
    
    For reference[1], these are the warning levels as described by MSVC
    documentation:
    
      * /W0 suppresses all warnings. It's equivalent to /w.
      * /W1 displays level 1 (severe) warnings. /W1 is the default setting
        in the command-line compiler.
      * /W2 displays level 1 and level 2 (significant) warnings.
      * /W3 displays level 1, level 2, and level 3 (production quality)
        warnings. /W3 is the default setting in the IDE.
      * /W4 displays level 1, level 2, and level 3 warnings, and all level 4
        (informational) warnings that aren't off by default. We recommend
        that you use this option to provide lint-like warnings. For a new
        project, it may be best to use /W4 in all compilations. This option
        helps ensure the fewest possible hard-to-find code defects.
      * /Wall displays all warnings displayed by /W4 and all other warnings
        that /W4 doesn't include — for example, warnings that are off by
        default.
      * /WX treats all compiler warnings as errors. For a new project, it
        may be best to use /WX in all compilations; resolving all warnings
        ensures the fewest possible hard-to-find code defects.
    
    1. https://docs.microsoft.com/en-us/cpp/build/reference/compiler-option-warning-level?view=vs-2019
    789d253e