Ticket #9120: create_msvc-Add_warnings_documentation.patch

File create_msvc-Add_warnings_documentation.patch, 2.9 KB (added by Templier, 14 years ago)

Documented disabled warnings in cpp file

  • tools/create_msvc/create_msvc.cpp

     
    495495        std::string globalWarnings;
    496496        std::map<std::string, std::string> projectWarnings;
    497497
     498        ////////////////////////////////////////////////////////////////////////////
    498499        // Initialize global & project-specific warnings
     500        //
     501        // Tracker reference:
     502        // https://sourceforge.net/tracker/?func=detail&aid=2909981&group_id=37116&atid=418822
     503        //
     504        ////////////////////////////////////////////////////////////////////////////
     505        //
     506        // 4068 (unknown pragma)
     507        //   only used in scumm engine to mark code sections
     508        //
     509        // 4100 (unreferenced formal parameter)
     510        //
     511        // 4103 (alignment changed after including header, may be due to missing #pragma pack(pop))
     512        //   used by pack-start / pack-end
     513        //
     514        // 4127 (conditional expression is constant)
     515        //   used in a lot of engines
     516        //
     517        // 4244 ('conversion' conversion from 'type1' to 'type2', possible loss of data)
     518        //   throws tons and tons of warnings, most of them false positives
     519        //
     520        // 4250 ('class1' : inherits 'class2::member' via dominance)
     521        //   two or more members have the same name. Should be harmless
     522        //
     523        // 4310 (cast truncates constant value)
     524        //   used in some engines
     525        //
     526        // 4351 (new behavior: elements of array 'array' will be default initialized)
     527        //   a change in behavior in Visual Studio 2005. We want the new behavior, so it can be disabled
     528        //
     529        // 4512 ('class' : assignment operator could not be generated)
     530        //   some classes use const items and the default assignment operator cannot be generated
     531        //
     532        // 4702 (unreachable code)
     533        //   mostly thrown after error() calls (marked as NORETURN)
     534        //
     535        // 4706 (assignment within conditional expression)
     536        //   used in a lot of engines
     537        //
     538        // 4800 ('type' : forcing value to bool 'true' or 'false' (performance warning))
     539        //
     540        // 4996 ('function': was declared deprecated)
     541        //   disabling it removes all the non-standard unsafe functions warnings (strcpy_s, etc.)
     542        //
     543        ////////////////////////////////////////////////////////////////////////////
     544        //
     545        // 4189 (local variable is initialized but not referenced)
     546        //   false positive in lure engine
     547        //
     548        // 4355 ('this' : used in base member initializer list)
     549        //   only disabled for specific engines where it is used in a safe way
     550        //
     551        // 4510 ('class' : default constructor could not be generated)
     552        //
     553        // 4610 (object 'class' can never be instantiated - user-defined constructor required)
     554        //   "correct" but harmless (as is 4510)
     555        //
     556        ////////////////////////////////////////////////////////////////////////////
     557
    499558        globalWarnings = "4068;4100;4103;4127;4244;4250;4310;4351;4512;4702;4706;4800;4996";
    500559
    501560        projectWarnings["agi"] = "4510;4610";