Compilation error fix for NetBSD

Based on the patch from Joerg Sonnenberger.
This commit is contained in:
Sergey Sharybin 2014-01-09 16:15:24 +06:00
parent 2d8545f87e
commit 113ff51476
2 changed files with 38 additions and 9 deletions

@ -31,9 +31,19 @@
// //
// TODO(sergey): Move it some some more generic header with platform-specific // TODO(sergey): Move it some some more generic header with platform-specific
// declarations. // declarations.
#ifdef _LIBCPP_VERSION
# define __is_heap is_heap // Indicates whether __is_heap is available
#endif #undef HAVE_IS_HEAP
#ifdef __GNUC__
// NeyBSD doesn't have __is_heap
# ifndef __NetBSD__
# define HAVE_IS_HEAP
# ifdef _LIBCPP_VERSION
# define __is_heap is_heap
# endif // _LIBCPP_VERSION
# endif // !__NetBSD__
#endif // __GNUC__
namespace { namespace {
// private code related to hole patching. // private code related to hole patching.
@ -129,7 +139,7 @@ namespace {
std::vector<vertex_info *> queue; std::vector<vertex_info *> queue;
void checkheap() { void checkheap() {
#ifdef __GNUC__ #if defined(HAVE_IS_HEAP)
CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering())); CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering()));
#endif #endif
} }

@ -1,7 +1,7 @@
diff -r 2e6e59022e6e lib/triangulator.cpp diff -r 2e6e59022e6e lib/triangulator.cpp
--- a/lib/triangulator.cpp Fri Nov 09 09:35:35 2012 +1100 --- a/lib/triangulator.cpp Fri Nov 09 09:35:35 2012 +1100
+++ b/lib/triangulator.cpp Thu Nov 28 13:34:52 2013 +0600 +++ b/lib/triangulator.cpp Thu Jan 09 16:13:17 2014 +0600
@@ -27,6 +27,13 @@ @@ -27,6 +27,23 @@
#include <algorithm> #include <algorithm>
@ -9,9 +9,28 @@ diff -r 2e6e59022e6e lib/triangulator.cpp
+// +//
+// TODO(sergey): Move it some some more generic header with platform-specific +// TODO(sergey): Move it some some more generic header with platform-specific
+// declarations. +// declarations.
+#ifdef _LIBCPP_VERSION +
+# define __is_heap is_heap +// Indicates whether __is_heap is available
+#endif +#undef HAVE_IS_HEAP
+
+#ifdef __GNUC__
+// NeyBSD doesn't have __is_heap
+# ifndef __NetBSD__
+# define HAVE_IS_HEAP
+# ifdef _LIBCPP_VERSION
+# define __is_heap is_heap
+# endif // _LIBCPP_VERSION
+# endif // !__NetBSD__
+#endif // __GNUC__
namespace { namespace {
// private code related to hole patching. // private code related to hole patching.
@@ -122,7 +139,7 @@
std::vector<vertex_info *> queue;
void checkheap() {
-#ifdef __GNUC__
+#if defined(HAVE_IS_HEAP)
CARVE_ASSERT(std::__is_heap(queue.begin(), queue.end(), vertex_info_ordering()));
#endif
}