Fix FBString with MSVC
authorArkadiy Shapkin <arkady.shapkin@gmail.com>
Tue, 9 May 2017 22:38:27 +0000 (15:38 -0700)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Tue, 9 May 2017 23:00:28 +0000 (16:00 -0700)
Summary: Closes https://github.com/facebook/folly/pull/588

Reviewed By: ericniebler

Differential Revision: D5029876

Pulled By: yfeldblum

fbshipit-source-id: 6a8f16373dcfb1c7b2741eb808da0f6dbc4207b6

folly/FBString.h
folly/Format-inl.h
folly/Format.h
folly/Range.h

index f5b577a777d61cb939ae66e89c9475fe7222fe1e..0ff4ba9e6a05bd4a3895973f641507477a93ccb7 100644 (file)
@@ -56,6 +56,7 @@
 #include <folly/Hash.h>
 #include <folly/Malloc.h>
 #include <folly/Traits.h>
 #include <folly/Hash.h>
 #include <folly/Malloc.h>
 #include <folly/Traits.h>
+#include <folly/portability/BitsFunctexcept.h>
 
 #if FOLLY_HAVE_DEPRECATED_ASSOC
 #ifdef _GLIBCXX_SYMVER
 
 #if FOLLY_HAVE_DEPRECATED_ASSOC
 #ifdef _GLIBCXX_SYMVER
 #define FBSTRING_UNLIKELY(x) (x)
 #endif
 
 #define FBSTRING_UNLIKELY(x) (x)
 #endif
 
-#pragma GCC diagnostic push
+FOLLY_PUSH_WARNING
 // Ignore shadowing warnings within this file, so includers can use -Wshadow.
 // Ignore shadowing warnings within this file, so includers can use -Wshadow.
-#pragma GCC diagnostic ignored "-Wshadow"
+FOLLY_GCC_DISABLE_WARNING("-Wshadow")
 // GCC 4.9 has a false positive in setSmallSize (probably
 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124), disable
 // compile-time array bound checking.
 // GCC 4.9 has a false positive in setSmallSize (probably
 // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124), disable
 // compile-time array bound checking.
-#pragma GCC diagnostic ignored "-Warray-bounds"
+FOLLY_GCC_DISABLE_WARNING("-Warray-bounds")
 
 // FBString cannot use throw when replacing std::string, though it may still
 // use std::__throw_*
 
 // FBString cannot use throw when replacing std::string, though it may still
 // use std::__throw_*
@@ -2888,7 +2889,7 @@ FOLLY_FBSTRING_HASH
 
 #endif // _LIBSTDCXX_FBSTRING
 
 
 #endif // _LIBSTDCXX_FBSTRING
 
-#pragma GCC diagnostic pop
+FOLLY_POP_WARNING
 
 #undef FBSTRING_DISABLE_SSO
 #undef FBSTRING_SANITIZE_ADDRESS
 
 #undef FBSTRING_DISABLE_SSO
 #undef FBSTRING_SANITIZE_ADDRESS
index 3bce25256227367a54724803fdfcc90540bb5f03..828de961eb9a9804850b759f1796b9ddc0c1237c 100644 (file)
@@ -31,8 +31,8 @@
 #include <folly/portability/Windows.h>
 
 // Ignore -Wformat-nonliteral warnings within this file
 #include <folly/portability/Windows.h>
 
 // Ignore -Wformat-nonliteral warnings within this file
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wformat-nonliteral"
+FOLLY_PUSH_WARNING
+FOLLY_GCC_DISABLE_WARNING("-Wformat-nonliteral")
 
 namespace folly {
 
 
 namespace folly {
 
@@ -1127,4 +1127,4 @@ typename std::enable_if<IsSomeString<Tgt>::value>::type toAppend(
 
 } // namespace folly
 
 
 } // namespace folly
 
-#pragma GCC diagnostic pop
+FOLLY_POP_WARNING
index 8986c4cac847e077a26341027770b549688ade6b..7c9929a9751411826d7b42a979e1b6090afb717d 100644 (file)
@@ -28,8 +28,8 @@
 #include <folly/Traits.h>
 
 // Ignore shadowing warnings within this file, so includers can use -Wshadow.
 #include <folly/Traits.h>
 
 // Ignore shadowing warnings within this file, so includers can use -Wshadow.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wshadow"
+FOLLY_PUSH_WARNING
+FOLLY_GCC_DISABLE_WARNING("-Wshadow")
 
 namespace folly {
 
 
 namespace folly {
 
@@ -460,4 +460,4 @@ vformatChecked(Str* out, StringPiece fmt, Container&& container) {
 
 #include <folly/Format-inl.h>
 
 
 #include <folly/Format-inl.h>
 
-#pragma GCC diagnostic pop
+FOLLY_POP_WARNING
index 9e392cf42de4f20b35e610fd0cfdd846d89d2e51..0076b07923bbb902bdc4b01266db8ca03f449da1 100644 (file)
@@ -56,8 +56,8 @@
 #include <folly/detail/RangeSse42.h>
 
 // Ignore shadowing warnings within this file, so includers can use -Wshadow.
 #include <folly/detail/RangeSse42.h>
 
 // Ignore shadowing warnings within this file, so includers can use -Wshadow.
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wshadow"
+FOLLY_PUSH_WARNING
+FOLLY_GCC_DISABLE_WARNING("-Wshadow")
 
 namespace folly {
 
 
 namespace folly {
 
@@ -1268,6 +1268,6 @@ template <class T> struct IsSomeString {
 
 }  // !namespace folly
 
 
 }  // !namespace folly
 
-#pragma GCC diagnostic pop
+FOLLY_POP_WARNING
 
 FOLLY_ASSUME_FBVECTOR_COMPATIBLE_1(folly::Range);
 
 FOLLY_ASSUME_FBVECTOR_COMPATIBLE_1(folly::Range);