[Boost-bugs] [Boost C++ Libraries] #5868: The warning stack is not maintained

Subject: [Boost-bugs] [Boost C++ Libraries] #5868: The warning stack is not maintained
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-09-05 11:58:10


#5868: The warning stack is not maintained
-------------------------------------------------------+--------------------
 Reporter: Tsukasa Kusakabe <kusakabe@…> | Owner: ramey
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: serialization
  Version: Boost 1.48.0 | Severity: Problem
 Keywords: |
-------------------------------------------------------+--------------------
 === Problem ===
 When "#include" is executed for the following file, the warning stack is
 destroyed.
 The cause is a misuse of "#pragma warning(default: warning-number-list)".

 File list
  * boost/archive/xml_wiarchive.hpp

  === Impact ===
 When the VisualStudio user uses a specific header, a part of a necessary
 warning is not displayed.

  === Reproduction code ===
 {{{
 #!cpp

 #include <boost/config.hpp>
 #include <boost/exception/all.hpp>
 #pragma warning(error: 4193)

 //boost/archive/xml_wiarchive.hpp
 #pragma warning(pop) // => warning C4193
 #include <boost/archive/xml_wiarchive.hpp>
 #pragma warning(pop) // !!! There is not warning. !!!
 #pragma warning(pop) // !!! There is not warning. !!!

 int main() {
   return 0;
 }
 }}}

  === Patch ===
 {{{
 #!diff

 Index: boost/archive/xml_wiarchive.hpp
 ===================================================================
 --- boost/archive/xml_wiarchive.hpp (revision 74236)
 +++ boost/archive/xml_wiarchive.hpp (working copy)
 @@ -126,8 +126,7 @@
  } // namespace boost

  #ifdef BOOST_MSVC
 -# pragma warning(push)
 -# pragma warning(disable : 4511 4512)
 +#pragma warning(pop)
  #endif

  #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp
 pragmas
 }}}

  === Environment ===
  * OS: Windows 7 Professional SP1
  * Compiler:
 {{{
 Microsoft Visual Studio 2010
 Version 10.0.30319.1 RTMRel
 Microsoft .NET Framework
 Version 4.0.30319 RTMRel
 }}}

  === Comments ===
 Division origin #5577

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5868>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:07 UTC