@@ -25,31 +25,32 @@ void test_is_sufficiently_aligned() {
2525 constexpr std::size_t N = alignof (T);
2626
2727 alignas (8 * N) std::remove_cv_t <T> buf[5 ];
28+ constexpr std::size_t Sz = sizeof (T);
2829
2930 assert (std::is_sufficiently_aligned<N>(&buf[0 ]));
3031 assert (std::is_sufficiently_aligned<2 * N>(&buf[0 ]));
3132 assert (std::is_sufficiently_aligned<4 * N>(&buf[0 ]));
3233 assert (std::is_sufficiently_aligned<8 * N>(&buf[0 ]));
3334
3435 assert (std::is_sufficiently_aligned<N>(&buf[1 ]));
35- assert (! std::is_sufficiently_aligned<2 * N>(&buf[1 ]));
36- assert (! std::is_sufficiently_aligned<4 * N>(&buf[1 ]));
37- assert (! std::is_sufficiently_aligned<8 * N>(&buf[1 ]));
36+ assert (std::is_sufficiently_aligned<2 * N>(&buf[1 ]) == ((( 1 * Sz) % ( 2 * N)) == 0 ));
37+ assert (std::is_sufficiently_aligned<4 * N>(&buf[1 ]) == ((( 1 * Sz) % ( 4 * N)) == 0 ));
38+ assert (std::is_sufficiently_aligned<8 * N>(&buf[1 ]) == ((( 1 * Sz) % ( 8 * N)) == 0 ));
3839
3940 assert (std::is_sufficiently_aligned<N>(&buf[2 ]));
40- assert (std::is_sufficiently_aligned<2 * N>(&buf[2 ]));
41- assert (! std::is_sufficiently_aligned<4 * N>(&buf[2 ]));
42- assert (! std::is_sufficiently_aligned<8 * N>(&buf[2 ]));
41+ assert (std::is_sufficiently_aligned<2 * N>(&buf[2 ]) == ((( 2 * Sz) % ( 2 * N)) == 0 ) );
42+ assert (std::is_sufficiently_aligned<4 * N>(&buf[2 ]) == ((( 2 * Sz) % ( 4 * N)) == 0 ));
43+ assert (std::is_sufficiently_aligned<8 * N>(&buf[2 ]) == ((( 2 * Sz) % ( 8 * N)) == 0 ));
4344
4445 assert (std::is_sufficiently_aligned<N>(&buf[3 ]));
45- assert (! std::is_sufficiently_aligned<2 * N>(&buf[3 ]));
46- assert (! std::is_sufficiently_aligned<4 * N>(&buf[3 ]));
47- assert (! std::is_sufficiently_aligned<8 * N>(&buf[3 ]));
46+ assert (std::is_sufficiently_aligned<2 * N>(&buf[3 ]) == ((( 3 * Sz) % ( 2 * N)) == 0 ));
47+ assert (std::is_sufficiently_aligned<4 * N>(&buf[3 ]) == ((( 3 * Sz) % ( 4 * N)) == 0 ));
48+ assert (std::is_sufficiently_aligned<8 * N>(&buf[3 ]) == ((( 3 * Sz) % ( 8 * N)) == 0 ));
4849
4950 assert (std::is_sufficiently_aligned<N>(&buf[4 ]));
50- assert (std::is_sufficiently_aligned<2 * N>(&buf[4 ]));
51- assert (std::is_sufficiently_aligned<4 * N>(&buf[4 ]));
52- assert (! std::is_sufficiently_aligned<8 * N>(&buf[4 ]));
51+ assert (std::is_sufficiently_aligned<2 * N>(&buf[4 ]) == ((( 4 * Sz) % ( 2 * N)) == 0 ) );
52+ assert (std::is_sufficiently_aligned<4 * N>(&buf[4 ]) == ((( 4 * Sz) % ( 4 * N)) == 0 ) );
53+ assert (std::is_sufficiently_aligned<8 * N>(&buf[4 ]) == ((( 4 * Sz) % ( 8 * N)) == 0 ));
5354}
5455
5556template <typename T>
0 commit comments