1 #include <glm/glm.hpp>
2
test_aligned()3 int test_aligned()
4 {
5 int Error = 0;
6
7 size_t size1_aligned = sizeof(glm::detail::storage<int, 1, true>::type);
8 Error += size1_aligned == 1 ? 0 : 1;
9 size_t size2_aligned = sizeof(glm::detail::storage<int, 2, true>::type);
10 Error += size2_aligned == 2 ? 0 : 1;
11 size_t size4_aligned = sizeof(glm::detail::storage<int, 4, true>::type);
12 Error += size4_aligned == 4 ? 0 : 1;
13 size_t size8_aligned = sizeof(glm::detail::storage<int, 8, true>::type);
14 Error += size8_aligned == 8 ? 0 : 1;
15 size_t size16_aligned = sizeof(glm::detail::storage<int, 16, true>::type);
16 Error += size16_aligned == 16 ? 0 : 1;
17 size_t size32_aligned = sizeof(glm::detail::storage<int, 32, true>::type);
18 Error += size32_aligned == 32 ? 0 : 1;
19 size_t size64_aligned = sizeof(glm::detail::storage<int, 64, true>::type);
20 Error += size64_aligned == 64 ? 0 : 1;
21
22 # if GLM_HAS_ALIGNOF
23
24 size_t align1_aligned = alignof(glm::detail::storage<int, 1, true>::type);
25 Error += align1_aligned == 1 ? 0 : 1;
26 size_t align2_aligned = alignof(glm::detail::storage<int, 2, true>::type);
27 Error += align2_aligned == 2 ? 0 : 1;
28 size_t align4_aligned = alignof(glm::detail::storage<int, 4, true>::type);
29 Error += align4_aligned == 4 ? 0 : 1;
30 size_t align8_aligned = alignof(glm::detail::storage<int, 8, true>::type);
31 Error += align8_aligned == 8 ? 0 : 1;
32 size_t align16_aligned = alignof(glm::detail::storage<int, 16, true>::type);
33 Error += align16_aligned == 16 ? 0 : 1;
34 size_t align32_aligned = alignof(glm::detail::storage<int, 32, true>::type);
35 Error += align32_aligned == 32 ? 0 : 1;
36 size_t align64_aligned = alignof(glm::detail::storage<int, 64, true>::type);
37 Error += align64_aligned == 64 ? 0 : 1;
38
39 # elif GLM_COMPILER & GLM_COMPILER_GCC
40
41 size_t align1_aligned = __alignof__(glm::detail::storage<int, 1, true>::type);
42 Error += align1_aligned == 1 ? 0 : 1;
43 size_t align2_aligned = __alignof__(glm::detail::storage<int, 2, true>::type);
44 Error += align2_aligned == 2 ? 0 : 1;
45 size_t align4_aligned = __alignof__(glm::detail::storage<int, 4, true>::type);
46 Error += align4_aligned == 4 ? 0 : 1;
47 size_t align8_aligned = __alignof__(glm::detail::storage<int, 8, true>::type);
48 Error += align8_aligned == 8 ? 0 : 1;
49 size_t align16_aligned = __alignof__(glm::detail::storage<int, 16, true>::type);
50 Error += align16_aligned == 16 ? 0 : 1;
51 size_t align32_aligned = __alignof__(glm::detail::storage<int, 32, true>::type);
52 Error += align32_aligned == 32 ? 0 : 1;
53 size_t align64_aligned = __alignof__(glm::detail::storage<int, 64, true>::type);
54 Error += align64_aligned == 64 ? 0 : 1;
55
56 # endif //GLM_HAS_ALIGNOF
57
58 return Error;
59 }
60
test_unaligned()61 int test_unaligned()
62 {
63 int Error = 0;
64
65 size_t size1_unaligned = sizeof(glm::detail::storage<int, 1, false>::type);
66 Error += size1_unaligned == 1 ? 0 : 1;
67 size_t size2_unaligned = sizeof(glm::detail::storage<int, 2, false>::type);
68 Error += size2_unaligned == 2 ? 0 : 1;
69 size_t size4_unaligned = sizeof(glm::detail::storage<int, 4, false>::type);
70 Error += size4_unaligned == 4 ? 0 : 1;
71 size_t size8_unaligned = sizeof(glm::detail::storage<int, 8, false>::type);
72 Error += size8_unaligned == 8 ? 0 : 1;
73 size_t size16_unaligned = sizeof(glm::detail::storage<int, 16, false>::type);
74 Error += size16_unaligned == 16 ? 0 : 1;
75 size_t size32_unaligned = sizeof(glm::detail::storage<int, 32, false>::type);
76 Error += size32_unaligned == 32 ? 0 : 1;
77 size_t size64_unaligned = sizeof(glm::detail::storage<int, 64, false>::type);
78 Error += size64_unaligned == 64 ? 0 : 1;
79
80 # if GLM_HAS_ALIGNOF
81
82 size_t align1_unaligned = alignof(glm::detail::storage<int, 1, false>::type);
83 Error += align1_unaligned == 1 ? 0 : 1;
84 size_t align2_unaligned = alignof(glm::detail::storage<int, 2, false>::type);
85 Error += align2_unaligned == 1 ? 0 : 1;
86 size_t align4_unaligned = alignof(glm::detail::storage<int, 4, false>::type);
87 Error += align4_unaligned == 1 ? 0 : 1;
88 size_t align8_unaligned = alignof(glm::detail::storage<int, 8, false>::type);
89 Error += align8_unaligned == 1 ? 0 : 1;
90 size_t align16_unaligned = alignof(glm::detail::storage<int, 16, false>::type);
91 Error += align16_unaligned == 1 ? 0 : 1;
92 size_t align32_unaligned = alignof(glm::detail::storage<int, 32, false>::type);
93 Error += align32_unaligned == 1 ? 0 : 1;
94 size_t align64_unaligned = alignof(glm::detail::storage<int, 64, false>::type);
95 Error += align64_unaligned == 1 ? 0 : 1;
96
97 # elif GLM_COMPILER & GLM_COMPILER_GCC
98
99 size_t align1_unaligned = __alignof__(glm::detail::storage<int, 1, false>::type);
100 Error += align1_unaligned == 1 ? 0 : 1;
101 size_t align2_unaligned = __alignof__(glm::detail::storage<int, 2, false>::type);
102 Error += align2_unaligned == 1 ? 0 : 1;
103 size_t align4_unaligned = __alignof__(glm::detail::storage<int, 4, false>::type);
104 Error += align4_unaligned == 1 ? 0 : 1;
105 size_t align8_unaligned = __alignof__(glm::detail::storage<int, 8, false>::type);
106 Error += align8_unaligned == 1 ? 0 : 1;
107 size_t align16_unaligned = __alignof__(glm::detail::storage<int, 16, false>::type);
108 Error += align16_unaligned == 1 ? 0 : 1;
109 size_t align32_unaligned = __alignof__(glm::detail::storage<int, 32, false>::type);
110 Error += align32_unaligned == 1 ? 0 : 1;
111 size_t align64_unaligned = __alignof__(glm::detail::storage<int, 64, false>::type);
112 Error += align64_unaligned == 1 ? 0 : 1;
113
114 # endif //GLM_HAS_ALIGNOF
115
116 return Error;
117 }
118
119
main()120 int main()
121 {
122 int Error = 0;
123
124 Error += test_aligned();
125 Error += test_unaligned();
126
127 return Error;
128 }
129