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