12 #define VERIFY_THROWS_BADALLOC(a) { \ 17 catch (std::bad_alloc&) { threw = true; } \ 18 VERIFY(threw && "should have thrown bad_alloc: " #a); \ 21 template<
typename MatrixType>
29 template<
typename VectorType>
44 size_t times_itself_gives_0 =
size_t(1) << (8 *
sizeof(
Index) / 2);
45 VERIFY(times_itself_gives_0 * times_itself_gives_0 == 0);
47 size_t times_4_gives_0 =
size_t(1) << (8 *
sizeof(
Index) - 2);
48 VERIFY(times_4_gives_0 * 4 == 0);
50 size_t times_8_gives_0 =
size_t(1) << (8 *
sizeof(
Index) - 3);
51 VERIFY(times_8_gives_0 * 8 == 0);
53 triggerMatrixBadAlloc<MatrixXf>(times_itself_gives_0, times_itself_gives_0);
54 triggerMatrixBadAlloc<MatrixXf>(times_itself_gives_0 / 4, times_itself_gives_0);
55 triggerMatrixBadAlloc<MatrixXf>(times_4_gives_0, 1);
57 triggerMatrixBadAlloc<MatrixXd>(times_itself_gives_0, times_itself_gives_0);
58 triggerMatrixBadAlloc<MatrixXd>(times_itself_gives_0 / 8, times_itself_gives_0);
59 triggerMatrixBadAlloc<MatrixXd>(times_8_gives_0, 1);
61 triggerVectorBadAlloc<VectorXf>(times_4_gives_0);
63 triggerVectorBadAlloc<VectorXd>(times_8_gives_0);
EIGEN_DECLARE_TEST(sizeoverflow)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
void triggerVectorBadAlloc(Index size)
Array< int, Dynamic, 1 > v
#define VERIFY_THROWS_BADALLOC(a)
void triggerMatrixBadAlloc(Index rows, Index cols)