[cfe-commits] [libcxx] r171202 - /libcxx/trunk/src/locale.cpp

Howard Hinnant hhinnant at apple.com
Fri Dec 28 10:15:01 PST 2012


Author: hhinnant
Date: Fri Dec 28 12:15:01 2012
New Revision: 171202

URL: http://llvm.org/viewvc/llvm-project?rev=171202&view=rev
Log:
Saleem Abdulrasool: GCC complains about the template functions as potentially not being able to be
inlined.  These do not need to be always-inlined for ABI stability because they are not exported beyond this source due to the unnamed namespace.
Also simplified use of the Wmissing-field-initializers pragma as was done for clang.

Modified:
    libcxx/trunk/src/locale.cpp

Modified: libcxx/trunk/src/locale.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/src/locale.cpp?rev=171202&r1=171201&r2=171202&view=diff
==============================================================================
--- libcxx/trunk/src/locale.cpp (original)
+++ libcxx/trunk/src/locale.cpp Fri Dec 28 12:15:01 2012
@@ -82,7 +82,7 @@
 }
 
 template <typename T, size_t N>
-_LIBCPP_ALWAYS_INLINE
+inline
 _LIBCPP_CONSTEXPR
 size_t
 countof(const T (&)[N])
@@ -91,7 +91,7 @@
 }
 
 template <typename T>
-_LIBCPP_ALWAYS_INLINE
+inline
 _LIBCPP_CONSTEXPR
 size_t
 countof(const T * const begin, const T * const end)
@@ -224,10 +224,10 @@
 #endif  // _LIBCPP_NO_EXCEPTIONS
 }
 
-// NOTE(saleem) avoid the `base class should be explicitly initialized in the
+// NOTE avoid the `base class should be explicitly initialized in the
 // copy constructor` warning emitted by GCC
-#pragma GCC diagnostic ignored "-Wextra"
 #pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wextra"
 
 locale::__imp::__imp(const __imp& other)
     : facets_(max<size_t>(N, other.facets_.size())),
@@ -4603,15 +4603,13 @@
 }
 
 #pragma clang diagnostic ignored "-Wmissing-field-initializers"
+#pragma GCC   diagnostic ignored "-Wmissing-field-initializers"
 
 template <>
 string
 __time_get_storage<char>::__analyze(char fmt, const ctype<char>& ct)
 {
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     tm t = {0};
-#pragma GCC diagnostic pop
     t.tm_sec = 59;
     t.tm_min = 55;
     t.tm_hour = 23;
@@ -4757,10 +4755,7 @@
 wstring
 __time_get_storage<wchar_t>::__analyze(char fmt, const ctype<wchar_t>& ct)
 {
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     tm t = {0};
-#pragma GCC diagnositc pop
     t.tm_sec = 59;
     t.tm_min = 55;
     t.tm_hour = 23;
@@ -4914,10 +4909,7 @@
 void
 __time_get_storage<char>::init(const ctype<char>& ct)
 {
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     tm t = {0};
-#pragma GCC diagnostic pop
     char buf[100];
     // __weeks_
     for (int i = 0; i < 7; ++i)
@@ -4954,17 +4946,11 @@
 void
 __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct)
 {
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     tm t = {0};
-#pragma GCC diagnostic pop
     char buf[100];
     wchar_t wbuf[100];
     wchar_t* wbe;
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     mbstate_t mb = {0};
-#pragma GCC diagnostic pop
     // __weeks_
     for (int i = 0; i < 7; ++i)
     {
@@ -5318,10 +5304,7 @@
     char __nar[100];
     char* __ne = __nar + 100;
     __do_put(__nar, __ne, __tm, __fmt, __mod);
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     mbstate_t mb = {0};
-#pragma GCC diagnostic pop
     const char* __nb = __nar;
 #ifdef _LIBCPP_LOCALE__L_EXTENSIONS
     size_t j = mbsrtowcs_l(__wb, &__nb, countof(__wb, __we), &mb, __loc_);
@@ -5846,10 +5829,7 @@
         __thousands_sep_ = base::do_thousands_sep();
     __grouping_ = lc->mon_grouping;
     wchar_t wbuf[100];
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     mbstate_t mb = {0};
-#pragma GCC diagnostic pop
     const char* bb = lc->currency_symbol;
 #ifdef _LIBCPP_LOCALE__L_EXTENSIONS
     size_t j = mbsrtowcs_l(wbuf, &bb, countof(wbuf), &mb, loc.get());
@@ -5932,10 +5912,7 @@
         __thousands_sep_ = base::do_thousands_sep();
     __grouping_ = lc->mon_grouping;
     wchar_t wbuf[100];
-#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
-#pragma GCC diagnostic push
     mbstate_t mb = {0};
-#pragma GCC diagnostic pop
     const char* bb = lc->int_curr_symbol;
 #ifdef _LIBCPP_LOCALE__L_EXTENSIONS
     size_t j = mbsrtowcs_l(wbuf, &bb, countof(wbuf), &mb, loc.get());





More information about the cfe-commits mailing list