|
|
|
@ -6,6 +6,22 @@
@@ -6,6 +6,22 @@
|
|
|
|
|
|
|
|
|
|
BOOST_AUTO_TEST_SUITE(bignum_tests) |
|
|
|
|
|
|
|
|
|
// Unfortunately there's no standard way of preventing a function from being
|
|
|
|
|
// inlined, so we define a macro for it.
|
|
|
|
|
//
|
|
|
|
|
// You should use it like this:
|
|
|
|
|
// NOINLINE void function() {...}
|
|
|
|
|
#if defined(__GNUC__) |
|
|
|
|
// This also works and will be defined for any compiler implementing gcc
|
|
|
|
|
// extensions, such as clang and icc.
|
|
|
|
|
#define NOINLINE __attribute__((noinline)) |
|
|
|
|
#elif defined(_MSC_VER) |
|
|
|
|
#define NOINLINE __declspec(noinline) |
|
|
|
|
#else |
|
|
|
|
// We give out a warning because it impacts the correctness of one bignum test.
|
|
|
|
|
#warning You should define NOINLINE for your compiler. |
|
|
|
|
#define NOINLINE |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
// For the following test case, it is useful to use additional tools.
|
|
|
|
|
//
|
|
|
|
|