diff --git a/test/test_alignment.cpp b/test/test_alignment.cpp index 38d58aa3..79fcf541 100644 --- a/test/test_alignment.cpp +++ b/test/test_alignment.cpp @@ -35,6 +35,10 @@ SOFTWARE. #include #include +void f(int a) +{ +} + namespace { SUITE(test_alignment) @@ -57,6 +61,32 @@ namespace { CHECK_EQUAL(0, size_t(&data32[1]) % expected); } + + etl::aligned_storage<100, 8>::type data9; + f(static_cast(data9)); + } + + //************************************************************************* + TEST(test_aligned_storage_as) + { + size_t alignment; + size_t expected; + + typedef etl::aligned_storage_as::type storage32_t; + static storage32_t data32[10]; + + alignment = etl::alignment_of::value; + expected = std::alignment_of::value; + + CHECK_EQUAL(expected, alignment); + + for (int i = 0; i < 10; ++i) + { + CHECK_EQUAL(0, size_t(&data32[1]) % expected); + } + + etl::aligned_storage<100, 8>::type data9; + f(static_cast(data9)); } }; } diff --git a/test/test_compile.cpp b/test/test_compile.cpp index 5e6a1920..54394a1f 100644 --- a/test/test_compile.cpp +++ b/test/test_compile.cpp @@ -90,23 +90,22 @@ void test_algorithm() //***************************************************************************** // alignment //***************************************************************************** -etl::align_at data9; -etl::align_at data10; +etl::aligned_storage<100, 8>::type data9; +etl::aligned_storage_as<100, double>::type data10; void test_alignment() { - data9.value = 0; - data10.value = 0; + int a = static_cast(data9); - etl::align_at data1; - etl::align_at data2; - etl::align_at data3; - etl::align_at data4; + etl::aligned_storage<1, 1>::type data1; + etl::aligned_storage<1, 2>::type data2; + etl::aligned_storage<1, 4>::type data3; + etl::aligned_storage<1, 8>::type data4; - etl::align_as data5; - etl::align_as data6; - etl::align_as data7; - etl::align_as data8; + etl::aligned_storage_as<1, char>::type data5; + etl::aligned_storage_as<1, short>::type data6; + etl::aligned_storage_as<1, int>::type data7; + etl::aligned_storage_as<1, double>::type data8; } //*****************************************************************************