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

Subject: [Boost-bugs] [Boost C++ Libraries] #5577: The warning stack is not maintained
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-05-27 21:33:32


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

 File list
  * boost/spirit/home/classic/core/composite/composite.hpp
  * boost/spirit/home/classic/core/composite/actions.hpp
  * boost/archive/xml_wiarchive.hpp
  * boost/program_options/parsers.hpp
  * boost/program_options/variables_map.hpp
  * boost/test/utils/nullstream.hpp
  * boost/test/utils/iterator/ifstream_line_iterator.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/spirit/home/classic/core/composite/composite.hpp
 #pragma warning(pop) // => warning C4193
 #include <boost/spirit/home/classic/core/composite/composite.hpp>
 #pragma warning(pop) // !!! There is not warning. !!!

 //boost/spirit/home/classic/core/composite/actions.hpp
 #pragma warning(pop) // => warning C4193
 #include <boost/spirit/home/classic/core/composite/actions.hpp>
 #pragma warning(pop) // !!! There is not warning. !!!

 //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. !!!

 //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. !!!

 //boost/test/utils/nullstream.hpp
 #pragma warning(pop) // => warning C4193
 #include <boost/test/utils/nullstream.hpp>
 #pragma warning(pop) // !!! There is not warning. !!!

 //boost/test/utils/iterator/ifstream_line_iterator.hpp
 #pragma warning(pop) // => warning C4193
 #include <boost/test/utils/iterator/ifstream_line_iterator.hpp>
 #pragma warning(pop) // !!! There is not warning. !!!


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

  === 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
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5577>
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:06 UTC