By changing all of the throw() specs to noexcept I've been able to compile and link all of the source files into a dylib. Prior to this substitution the changed functions were calling __cxa_call_unexpected which isn't implemented yet. However in none of these cases do we actaully want __cxa_call_unexpected to be called. Primative buildit script added.
llvm-svn: 148880
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: abc770690a70c49c947e684bcfa10cce3ac24522
diff --git a/src/fallback_malloc.ipp b/src/fallback_malloc.ipp
index 576ee30..1411112 100644
--- a/src/fallback_malloc.ipp
+++ b/src/fallback_malloc.ipp
@@ -50,26 +50,26 @@
static const heap_node *list_end = (heap_node *) ( &heap [ HEAP_SIZE ] ); // one past the end of the heap
static heap_node *freelist = NULL;
-heap_node *node_from_offset ( const heap_offset offset ) throw()
+heap_node *node_from_offset ( const heap_offset offset ) noexcept
{ return (heap_node *) ( heap + ( offset * sizeof (heap_node))); }
-heap_offset offset_from_node ( const heap_node *ptr ) throw()
+heap_offset offset_from_node ( const heap_node *ptr ) noexcept
{ return (((char *) ptr ) - heap) / sizeof (heap_node); }
-void init_heap () throw() {
+void init_heap () noexcept {
freelist = (heap_node *) heap;
freelist->next_node = offset_from_node ( list_end );
freelist->len = HEAP_SIZE / sizeof (heap_node);
}
// How big a chunk we allocate
-size_t alloc_size (size_t len) throw()
+size_t alloc_size (size_t len) noexcept
{ return (len + sizeof(heap_node) - 1) / sizeof(heap_node) + 1; }
-bool is_fallback_ptr ( void *ptr ) throw()
+bool is_fallback_ptr ( void *ptr ) noexcept
{ return ptr >= heap && ptr < ( heap + HEAP_SIZE ); }
-void *fallback_malloc(size_t len) throw() {
+void *fallback_malloc(size_t len) noexcept {
heap_node *p, *prev;
const size_t nelems = alloc_size ( len );
mutexor mtx ( &heap_mutex );
@@ -104,9 +104,9 @@
}
// Return the start of the next block
-heap_node *after ( struct heap_node *p ) throw() { return p + p->len; }
+heap_node *after ( struct heap_node *p ) noexcept { return p + p->len; }
-void fallback_free (void *ptr) throw() {
+void fallback_free (void *ptr) noexcept {
struct heap_node *cp = ((struct heap_node *) ptr) - 1; // retrieve the chunk
struct heap_node *p, *prev;