Wrap throw in _LIBCPP_NO_EXCEPTIONS in debug.cpp. Calls abort if can't throw an exception. Fixes http://llvm.org/bugs/show_bug.cgi?id=13082.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@162613 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
37bdf0e6bd
commit
3882d397c4
@ -146,7 +146,11 @@ __libcpp_db::__insert_c(void* __c)
|
|||||||
size_t nc = __next_prime(2*static_cast<size_t>(__cend_ - __cbeg_) + 1);
|
size_t nc = __next_prime(2*static_cast<size_t>(__cend_ - __cbeg_) + 1);
|
||||||
__c_node** cbeg = (__c_node**)calloc(nc, sizeof(void*));
|
__c_node** cbeg = (__c_node**)calloc(nc, sizeof(void*));
|
||||||
if (cbeg == nullptr)
|
if (cbeg == nullptr)
|
||||||
|
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||||
throw bad_alloc();
|
throw bad_alloc();
|
||||||
|
#else
|
||||||
|
abort();
|
||||||
|
#endif
|
||||||
for (__c_node** p = __cbeg_; p != __cend_; ++p)
|
for (__c_node** p = __cbeg_; p != __cend_; ++p)
|
||||||
{
|
{
|
||||||
__c_node* q = *p;
|
__c_node* q = *p;
|
||||||
@ -167,7 +171,11 @@ __libcpp_db::__insert_c(void* __c)
|
|||||||
__c_node* p = __cbeg_[hc];
|
__c_node* p = __cbeg_[hc];
|
||||||
__c_node* r = __cbeg_[hc] = (__c_node*)malloc(sizeof(__c_node));
|
__c_node* r = __cbeg_[hc] = (__c_node*)malloc(sizeof(__c_node));
|
||||||
if (__cbeg_[hc] == nullptr)
|
if (__cbeg_[hc] == nullptr)
|
||||||
|
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||||
throw bad_alloc();
|
throw bad_alloc();
|
||||||
|
#else
|
||||||
|
abort();
|
||||||
|
#endif
|
||||||
r->__c_ = __c;
|
r->__c_ = __c;
|
||||||
r->__next_ = p;
|
r->__next_ = p;
|
||||||
++__csz_;
|
++__csz_;
|
||||||
@ -402,7 +410,11 @@ __c_node::__add(__i_node* i)
|
|||||||
nc = 1;
|
nc = 1;
|
||||||
__i_node** beg = (__i_node**)malloc(nc * sizeof(__i_node*));
|
__i_node** beg = (__i_node**)malloc(nc * sizeof(__i_node*));
|
||||||
if (beg == nullptr)
|
if (beg == nullptr)
|
||||||
|
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||||
throw bad_alloc();
|
throw bad_alloc();
|
||||||
|
#else
|
||||||
|
abort();
|
||||||
|
#endif
|
||||||
if (nc > 1)
|
if (nc > 1)
|
||||||
memcpy(beg, beg_, nc/2*sizeof(__i_node*));
|
memcpy(beg, beg_, nc/2*sizeof(__i_node*));
|
||||||
free(beg_);
|
free(beg_);
|
||||||
@ -424,7 +436,11 @@ __libcpp_db::__insert_iterator(void* __i)
|
|||||||
size_t nc = __next_prime(2*static_cast<size_t>(__iend_ - __ibeg_) + 1);
|
size_t nc = __next_prime(2*static_cast<size_t>(__iend_ - __ibeg_) + 1);
|
||||||
__i_node** ibeg = (__i_node**)calloc(nc, sizeof(void*));
|
__i_node** ibeg = (__i_node**)calloc(nc, sizeof(void*));
|
||||||
if (ibeg == nullptr)
|
if (ibeg == nullptr)
|
||||||
|
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||||
throw bad_alloc();
|
throw bad_alloc();
|
||||||
|
#else
|
||||||
|
abort();
|
||||||
|
#endif
|
||||||
for (__i_node** p = __ibeg_; p != __iend_; ++p)
|
for (__i_node** p = __ibeg_; p != __iend_; ++p)
|
||||||
{
|
{
|
||||||
__i_node* q = *p;
|
__i_node* q = *p;
|
||||||
@ -445,7 +461,11 @@ __libcpp_db::__insert_iterator(void* __i)
|
|||||||
__i_node* p = __ibeg_[hi];
|
__i_node* p = __ibeg_[hi];
|
||||||
__i_node* r = __ibeg_[hi] = (__i_node*)malloc(sizeof(__i_node));
|
__i_node* r = __ibeg_[hi] = (__i_node*)malloc(sizeof(__i_node));
|
||||||
if (r == nullptr)
|
if (r == nullptr)
|
||||||
|
#ifndef _LIBCPP_NO_EXCEPTIONS
|
||||||
throw bad_alloc();
|
throw bad_alloc();
|
||||||
|
#else
|
||||||
|
abort();
|
||||||
|
#endif
|
||||||
::new(r) __i_node(__i, p, nullptr);
|
::new(r) __i_node(__i, p, nullptr);
|
||||||
++__isz_;
|
++__isz_;
|
||||||
return r;
|
return r;
|
||||||
|
Loading…
Reference in New Issue
Block a user