Extend llvm::AlignedCharArrayUnion to support up to 10 arguments, as required by...
authorRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 9 Jan 2014 03:28:55 +0000 (03:28 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Thu, 9 Jan 2014 03:28:55 +0000 (03:28 +0000)
llvm-svn: 198844

llvm/include/llvm/Support/AlignOf.h

index bba3424..061d5ac 100644 (file)
@@ -170,19 +170,22 @@ LLVM_ALIGNEDCHARARRAY_TEMPLATE_ALIGNMENT(128)
 namespace detail {
 template <typename T1,
           typename T2 = char, typename T3 = char, typename T4 = char,
-          typename T5 = char, typename T6 = char, typename T7 = char>
+          typename T5 = char, typename T6 = char, typename T7 = char,
+          typename T8 = char, typename T9 = char, typename T10 = char>
 class AlignerImpl {
-  T1 t1; T2 t2; T3 t3; T4 t4; T5 t5; T6 t6; T7 t7;
+  T1 t1; T2 t2; T3 t3; T4 t4; T5 t5; T6 t6; T7 t7; T8 t8; T9 t9; T10 t10;
 
   AlignerImpl(); // Never defined or instantiated.
 };
 
 template <typename T1,
           typename T2 = char, typename T3 = char, typename T4 = char,
-          typename T5 = char, typename T6 = char, typename T7 = char>
+          typename T5 = char, typename T6 = char, typename T7 = char,
+          typename T8 = char, typename T9 = char, typename T10 = char>
 union SizerImpl {
   char arr1[sizeof(T1)], arr2[sizeof(T2)], arr3[sizeof(T3)], arr4[sizeof(T4)],
-       arr5[sizeof(T5)], arr6[sizeof(T6)], arr7[sizeof(T7)];
+       arr5[sizeof(T5)], arr6[sizeof(T6)], arr7[sizeof(T7)], arr8[sizeof(T8)],
+       arr9[sizeof(T9)], arr10[sizeof(T10)];
 };
 } // end namespace detail
 
@@ -195,10 +198,13 @@ union SizerImpl {
 /// be added at the cost of more boiler plate.
 template <typename T1,
           typename T2 = char, typename T3 = char, typename T4 = char,
-          typename T5 = char, typename T6 = char, typename T7 = char>
+          typename T5 = char, typename T6 = char, typename T7 = char,
+          typename T8 = char, typename T9 = char, typename T10 = char>
 struct AlignedCharArrayUnion : llvm::AlignedCharArray<
-    AlignOf<detail::AlignerImpl<T1, T2, T3, T4, T5, T6, T7> >::Alignment,
-    sizeof(detail::SizerImpl<T1, T2, T3, T4, T5, T6, T7>)> {
+    AlignOf<detail::AlignerImpl<T1, T2, T3, T4, T5,
+                                T6, T7, T8, T9, T10> >::Alignment,
+    sizeof(detail::SizerImpl<T1, T2, T3, T4, T5,
+                             T6, T7, T8, T9, T10>)> {
 };
 } // end namespace llvm
 #endif