diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 923708f8a38..0a455335ad7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2011-01-27 Rafael Avila de Espindola + + * libsupc++/typeinfo: Correctly match #pragma GCC visibility + pop with #pragma GCC visibility push. + 2012-01-27 Benjamin Kosnik Matthias Klose diff --git a/libstdc++-v3/libsupc++/typeinfo b/libstdc++-v3/libsupc++/typeinfo index aaa756bfebc..f0382d64f76 100644 --- a/libstdc++-v3/libsupc++/typeinfo +++ b/libstdc++-v3/libsupc++/typeinfo @@ -1,6 +1,6 @@ // RTTI support for -*- C++ -*- // Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -// 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 +// 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012 // Free Software Foundation // // This file is part of GCC. @@ -9,12 +9,12 @@ // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3, or (at your option) // any later version. -// +// // GCC is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. @@ -38,7 +38,6 @@ #include #endif - #pragma GCC visibility push(default) extern "C++" { @@ -80,7 +79,7 @@ namespace __cxxabiv1 #endif #endif -namespace std +namespace std { /** * @brief Part of RTTI. @@ -88,7 +87,7 @@ namespace std * The @c type_info class describes type information generated by * an implementation. */ - class type_info + class type_info { public: /** Destructor first. Being the first non-inline virtual function, this @@ -172,9 +171,9 @@ namespace std protected: const char *__name; - + explicit type_info(const char *__n): __name(__n) { } - + private: /// Assigning type_info is not supported. type_info& operator=(const type_info&); @@ -187,7 +186,7 @@ namespace std * * If you attempt an invalid @c dynamic_cast expression, an instance of * this class (or something derived from this class) is thrown. */ - class bad_cast : public exception + class bad_cast : public exception { public: bad_cast() _GLIBCXX_USE_NOEXCEPT { } @@ -199,12 +198,12 @@ namespace std // See comment in eh_exception.cc. virtual const char* what() const _GLIBCXX_USE_NOEXCEPT; }; - - /** + + /** * @brief Thrown when a NULL pointer in a @c typeid expression is used. * @ingroup exceptions */ - class bad_typeid : public exception + class bad_typeid : public exception { public: bad_typeid () _GLIBCXX_USE_NOEXCEPT { } @@ -218,7 +217,8 @@ namespace std }; } // namespace std +} // extern "C++" + #pragma GCC visibility pop -} // extern "C++" #endif