diff options
Diffstat (limited to 'libstdc++-v3/libsupc++/vec.cc')
-rw-r--r-- | libstdc++-v3/libsupc++/vec.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libstdc++-v3/libsupc++/vec.cc b/libstdc++-v3/libsupc++/vec.cc index f9afd39df9b..507514ec76a 100644 --- a/libstdc++-v3/libsupc++/vec.cc +++ b/libstdc++-v3/libsupc++/vec.cc @@ -28,6 +28,7 @@ #include <cxxabi.h> #include <new> #include <exception> +#include <cstdlib> #include <bits/exception_defines.h> #include "unwind-cxx.h" @@ -65,10 +66,18 @@ namespace __cxxabiv1 std::size_t padding_size) { if (element_size && element_count > std::size_t(-1) / element_size) +#ifdef __EXCEPTIONS throw std::bad_alloc(); +#else + std::abort(); +#endif std::size_t size = element_count * element_size; if (size + padding_size < size) +#ifdef __EXCEPTIONS throw std::bad_alloc(); +#else + std::abort(); +#endif return size + padding_size; } } |