backport 921254-921261 to the branch: disable alignment altogether on exotic platforms

This commit is contained in:
Benoit Jacob
2009-02-16 16:29:33 +00:00
parent 95e4508b04
commit d38504a4c8
4 changed files with 70 additions and 65 deletions

View File

@@ -92,6 +92,7 @@ void check_unalignedassert_good()
delete[] y;
}
#if EIGEN_ARCH_WANTS_ALIGNMENT
template<typename T>
void check_unalignedassert_bad()
{
@@ -101,20 +102,27 @@ void check_unalignedassert_bad()
T *x = ::new(static_cast<void*>(unaligned)) T;
x->~T();
}
#endif
void unalignedassert()
{
check_unalignedassert_good<Good1>();
check_unalignedassert_good<Good2>();
check_unalignedassert_good<Good3>();
#if EIGEN_ARCH_WANTS_ALIGNMENT
VERIFY_RAISES_ASSERT(check_unalignedassert_bad<Bad4>());
VERIFY_RAISES_ASSERT(check_unalignedassert_bad<Bad5>());
VERIFY_RAISES_ASSERT(check_unalignedassert_bad<Bad6>());
#endif
check_unalignedassert_good<Good7>();
check_unalignedassert_good<Good8>();
check_unalignedassert_good<Good9>();
check_unalignedassert_good<Depends<true> >();
#if EIGEN_ARCH_WANTS_ALIGNMENT
VERIFY_RAISES_ASSERT(check_unalignedassert_bad<Depends<false> >());
#endif
}
void test_unalignedassert()