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

Subject: [Boost-bugs] [Boost C++ Libraries] #5869: The warning stack is not maintained
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-09-05 12:05:26


#5869: The warning stack is not maintained
-------------------------------------------------------+--------------------
 Reporter: Tsukasa Kusakabe <kusakabe@…> | Owner: vladimir_prus
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: program_options
  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 to have forgotten to write "#pragma warning(pop)".

 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>
 #pragma warning(error: 4193)

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

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

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

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

 Index: boost/program_options/parsers.hpp
 ===================================================================
 --- boost/program_options/parsers.hpp (revision 74236)
 +++ boost/program_options/parsers.hpp (working copy)
 @@ -260,6 +260,10 @@

  }}

 +#if defined(BOOST_MSVC)
 +#pragma warning (pop)
 +#endif
 +
  #undef DECL

  #include "boost/program_options/detail/parsers.hpp"
 Index: boost/program_options/variables_map.hpp
 ===================================================================
 --- boost/program_options/variables_map.hpp (revision 74236)
 +++ boost/program_options/variables_map.hpp (working copy)
 @@ -211,4 +211,8 @@

  }}

 +#if defined(BOOST_MSVC)
 +# pragma warning (pop)
 +#endif
 +
  #endif
 }}}

  === 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/5869>
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