]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/endian/test/packed_arithmetic_test.cpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / endian / test / packed_arithmetic_test.cpp
1 // Copyright 2020 Peter Dimov
2 // Distributed under the Boost Software License, Version 1.0.
3 // https://www.boost.org/LICENSE_1_0.txt
4
5 #if !defined(__GNUC__)
6
7 #include <boost/config/pragma_message.hpp>
8 BOOST_PRAGMA_MESSAGE( "Skipping test because __GNUC__ is not defined" )
9 int main() {}
10
11 #else
12
13 #define BOOST_ENDIAN_FORCE_PODNESS
14 #define BOOST_ENDIAN_NO_CTORS
15 #include <boost/endian/arithmetic.hpp>
16 #include <boost/core/lightweight_test.hpp>
17
18 using namespace boost::endian;
19
20 struct X
21 {
22 big_uint16_t a;
23 native_float64_t b;
24 little_uint16_t c;
25 } __attribute__((packed));
26
27 int main()
28 {
29 BOOST_TEST_EQ( sizeof(big_uint16_t), 2 );
30 BOOST_TEST_EQ( sizeof(native_float64_t), 8 );
31 BOOST_TEST_EQ( sizeof(little_uint16_t), 2 );
32
33 BOOST_TEST_EQ( sizeof(X), 12 );
34
35 return boost::report_errors();
36 }
37
38 #endif