summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2015-03-05 02:56:05 +0000
committerNick Lewycky <nicholas@mxc.ca>2015-03-05 02:56:05 +0000
commit5b2d125c926908c0a8e6592dcb5754fb752a074e (patch)
tree8f2b4679c5f84759cdc20e0078b57b3a849917d0
parentc1d6ab9a1eb05f14ec4d408031b673dc3d4c8131 (diff)
downloadbcm5719-llvm-5b2d125c926908c0a8e6592dcb5754fb752a074e.tar.gz
bcm5719-llvm-5b2d125c926908c0a8e6592dcb5754fb752a074e.zip
Fix build with GCC:
- GCC doesn't support #pragma mark, only Apple GCC and clang. Wrap the pragma mark's in #if 0 to make gcc ignore them but xcode still see them. - Wrap a bunch of "#pragma clang" lines in #ifdef __clang__. - Pacify gcc's -Wparenthesis in a case where it's quite reasonable. llvm-svn: 231344
-rw-r--r--libcxxabi/src/cxa_demangle.cpp2
-rw-r--r--libcxxabi/src/cxa_vector.cpp4
-rw-r--r--libcxxabi/src/private_typeinfo.cpp12
3 files changed, 17 insertions, 1 deletions
diff --git a/libcxxabi/src/cxa_demangle.cpp b/libcxxabi/src/cxa_demangle.cpp
index 2d076863ac5..1344f439f6a 100644
--- a/libcxxabi/src/cxa_demangle.cpp
+++ b/libcxxabi/src/cxa_demangle.cpp
@@ -4711,7 +4711,7 @@ class arena
std::size_t
align_up(std::size_t n) noexcept
- {return n + (alignment-1) & ~(alignment-1);}
+ {return (n + (alignment-1)) & ~(alignment-1);}
bool
pointer_in_buffer(char* p) noexcept
diff --git a/libcxxabi/src/cxa_vector.cpp b/libcxxabi/src/cxa_vector.cpp
index 3c9b535c624..c0d806f2fb8 100644
--- a/libcxxabi/src/cxa_vector.cpp
+++ b/libcxxabi/src/cxa_vector.cpp
@@ -17,7 +17,9 @@
namespace __cxxabiv1 {
+#if 0
#pragma mark --Helper routines and classes --
+#endif
namespace {
inline static size_t __get_element_count ( void *p ) {
@@ -102,7 +104,9 @@ namespace {
};
}
+#if 0
#pragma mark --Externally visible routines--
+#endif
extern "C" {
diff --git a/libcxxabi/src/private_typeinfo.cpp b/libcxxabi/src/private_typeinfo.cpp
index 821796fb2a0..d410dabf7a7 100644
--- a/libcxxabi/src/private_typeinfo.cpp
+++ b/libcxxabi/src/private_typeinfo.cpp
@@ -219,8 +219,10 @@ __enum_type_info::can_catch(const __shim_type_info* thrown_type,
return is_equal(this, thrown_type, false);
}
+#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmissing-field-initializers"
+#endif
// Handles bullets 1 and 2
bool
@@ -246,7 +248,9 @@ __class_type_info::can_catch(const __shim_type_info* thrown_type,
return false;
}
+#ifdef __clang__
#pragma clang diagnostic pop
+#endif
void
__class_type_info::process_found_base_class(__dynamic_cast_info* info,
@@ -351,8 +355,10 @@ __pbase_type_info::can_catch(const __shim_type_info* thrown_type,
is_equal(thrown_type, &typeid(std::nullptr_t), false);
}
+#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmissing-field-initializers"
+#endif
// Handles bullets 1, 3 and 4
// NOTE: It might not be safe to adjust the pointer if it is not not a pointer
@@ -403,13 +409,17 @@ __pointer_type_info::can_catch(const __shim_type_info* thrown_type,
return false;
}
+#ifdef __clang__
#pragma clang diagnostic pop
+#endif
#pragma GCC visibility pop
#pragma GCC visibility push(default)
+#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmissing-field-initializers"
+#endif
// __dynamic_cast
@@ -578,7 +588,9 @@ __dynamic_cast(const void* static_ptr,
return const_cast<void*>(dst_ptr);
}
+#ifdef __clang__
#pragma clang diagnostic pop
+#endif
#pragma GCC visibility pop
#pragma GCC visibility push(hidden)
OpenPOWER on IntegriCloud