aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/blasutil.cpp
diff options
context:
space:
mode:
authorGravatar David Tellenbach <david.tellenbach@me.com>2020-08-14 17:24:37 +0200
committerGravatar David Tellenbach <david.tellenbach@me.com>2020-08-14 17:24:37 +0200
commitc6820a6316c86fb7f67fd344832f8e31cac62dc1 (patch)
tree75380cec4f500ed53894b218c24933e7df75fb13 /test/blasutil.cpp
parent8ba1b0f41a7950dc3e1d4ed75859e36c73311235 (diff)
Replace the call to int64_t in the blasutil test by explicit types
Some platforms define int64_t to be long long even for C++03. If this is the case we miss the definition of internal::make_unsigned for this type. If we just define the template we get duplicated definitions errors for platforms defining int64_t as signed long for C++03. We need to find a way to distinguish both cases at compile-time.
Diffstat (limited to 'test/blasutil.cpp')
-rw-r--r--test/blasutil.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/test/blasutil.cpp b/test/blasutil.cpp
index cd8716351..255d2a6ca 100644
--- a/test/blasutil.cpp
+++ b/test/blasutil.cpp
@@ -186,11 +186,17 @@ EIGEN_DECLARE_TEST(blasutil)
{
for(int i = 0; i < g_repeat; i++)
{
- CALL_SUBTEST_1(run_test<int8_t>());
- CALL_SUBTEST_2(run_test<int16_t>());
- CALL_SUBTEST_3(run_test<int32_t>());
- CALL_SUBTEST_4(run_test<int64_t>());
- CALL_SUBTEST_5(run_test<float_t>());
- CALL_SUBTEST_6(run_test<double_t>());
+ CALL_SUBTEST_1(run_test<numext::int8_t>());
+ CALL_SUBTEST_2(run_test<numext::int16_t>());
+ CALL_SUBTEST_3(run_test<numext::int32_t>());
+// TODO: Replace this by a call to numext::int64_t as soon as we have a way to
+// detect the typedef for int64_t on all platforms
+#if EIGEN_HAS_CXX11
+ CALL_SUBTEST_4(run_test<signed long long>());
+#else
+ CALL_SUBTEST_4(run_test<signed long>());
+#endif
+ CALL_SUBTEST_5(run_test<numext::float_t>());
+ CALL_SUBTEST_6(run_test<numext::double_t>());
}
} \ No newline at end of file