Commit df5a0575 authored by Yedidya Feldblum's avatar Yedidya Feldblum Committed by Facebook Github Bot

Always define FOLLY_HAS_RTTI

Summary: [Folly] Always define `FOLLY_HAS_RTTI` to either `0` or `1`.

Reviewed By: LeeHowes

Differential Revision: D14018830

fbshipit-source-id: 5212f3f6269067fc6326e293cedb243e650f71db
parent 150a10cf
...@@ -1335,7 +1335,7 @@ convertTo(const Src& value) noexcept { ...@@ -1335,7 +1335,7 @@ convertTo(const Src& value) noexcept {
template <typename Tgt, typename Src> template <typename Tgt, typename Src>
inline std::string errorValue(const Src& value) { inline std::string errorValue(const Src& value) {
#ifdef FOLLY_HAS_RTTI #if FOLLY_HAS_RTTI
return to<std::string>("(", demangle(typeid(Tgt)), ") ", value); return to<std::string>("(", demangle(typeid(Tgt)), ") ", value);
#else #else
return to<std::string>(value); return to<std::string>(value);
......
...@@ -31,7 +31,7 @@ namespace folly { ...@@ -31,7 +31,7 @@ namespace folly {
* defined. * defined.
*/ */
inline fbstring exceptionStr(const std::exception& e) { inline fbstring exceptionStr(const std::exception& e) {
#ifdef FOLLY_HAS_RTTI #if FOLLY_HAS_RTTI
fbstring rv(demangle(typeid(e))); fbstring rv(demangle(typeid(e)));
rv += ": "; rv += ": ";
#else #else
...@@ -65,7 +65,7 @@ inline fbstring exceptionStr(std::exception_ptr ep) { ...@@ -65,7 +65,7 @@ inline fbstring exceptionStr(std::exception_ptr ep) {
template <typename E> template <typename E>
auto exceptionStr(const E& e) -> typename std:: auto exceptionStr(const E& e) -> typename std::
enable_if<!std::is_base_of<std::exception, E>::value, fbstring>::type { enable_if<!std::is_base_of<std::exception, E>::value, fbstring>::type {
#ifdef FOLLY_HAS_RTTI #if FOLLY_HAS_RTTI
return demangle(typeid(e)); return demangle(typeid(e));
#else #else
(void)e; (void)e;
......
...@@ -358,6 +358,8 @@ using namespace FOLLY_GFLAGS_NAMESPACE; ...@@ -358,6 +358,8 @@ using namespace FOLLY_GFLAGS_NAMESPACE;
#if defined(__GXX_RTTI) || defined(__cpp_rtti) || \ #if defined(__GXX_RTTI) || defined(__cpp_rtti) || \
(defined(_MSC_VER) && defined(_CPPRTTI)) (defined(_MSC_VER) && defined(_CPPRTTI))
#define FOLLY_HAS_RTTI 1 #define FOLLY_HAS_RTTI 1
#else
#define FOLLY_HAS_RTTI 0
#endif #endif
#if defined(__APPLE__) || defined(_MSC_VER) #if defined(__APPLE__) || defined(_MSC_VER)
......
...@@ -44,7 +44,7 @@ auto fallbackFormatOneArg(std::string* str, const Arg* arg, int) -> decltype( ...@@ -44,7 +44,7 @@ auto fallbackFormatOneArg(std::string* str, const Arg* arg, int) -> decltype(
std::declval<void>()) { std::declval<void>()) {
str->push_back('('); str->push_back('(');
try { try {
#ifdef FOLLY_HAS_RTTI #if FOLLY_HAS_RTTI
toAppend(folly::demangle(typeid(*arg)), str); toAppend(folly::demangle(typeid(*arg)), str);
str->append(": "); str->append(": ");
#endif #endif
...@@ -58,7 +58,7 @@ auto fallbackFormatOneArg(std::string* str, const Arg* arg, int) -> decltype( ...@@ -58,7 +58,7 @@ auto fallbackFormatOneArg(std::string* str, const Arg* arg, int) -> decltype(
template <typename Arg> template <typename Arg>
inline void fallbackFormatOneArg(std::string* str, const Arg* arg, long) { inline void fallbackFormatOneArg(std::string* str, const Arg* arg, long) {
str->push_back('('); str->push_back('(');
#ifdef FOLLY_HAS_RTTI #if FOLLY_HAS_RTTI
try { try {
toAppend(folly::demangle(typeid(*arg)), str); toAppend(folly::demangle(typeid(*arg)), str);
str->append(": "); str->append(": ");
......
...@@ -1032,7 +1032,7 @@ namespace { ...@@ -1032,7 +1032,7 @@ namespace {
template <typename T, typename V> template <typename T, typename V>
std::string prefixWithType(V value) { std::string prefixWithType(V value) {
std::ostringstream oss; std::ostringstream oss;
#ifdef FOLLY_HAS_RTTI #if FOLLY_HAS_RTTI
oss << "(" << demangle(typeid(T)) << ") "; oss << "(" << demangle(typeid(T)) << ") ";
#endif #endif
oss << to<std::string>(value); oss << to<std::string>(value);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment