Flatten the aligned-char-array utility template to be a directly

templated union at the request of Richard Smith. This makes it
substantially easier to type. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162072 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chandler Carruth
2012-08-17 01:47:25 +00:00
parent 083b48af14
commit cbeb8d9869
3 changed files with 133 additions and 134 deletions

View File

@@ -687,8 +687,7 @@ class SmallDenseMap
/// A "union" of an inline bucket array and the struct representing
/// a large bucket. This union will be discriminated by the 'Small' bit.
typename AlignedCharArray<BucketT[InlineBuckets], LargeRep>::union_type
storage;
AlignedCharArrayUnion<BucketT[InlineBuckets], LargeRep> storage;
public:
explicit SmallDenseMap(unsigned NumInitBuckets = 0) {
@@ -834,8 +833,7 @@ public:
return; // Nothing to do.
// First move the inline buckets into a temporary storage.
typename AlignedCharArray<BucketT[InlineBuckets]>::union_type
TmpStorage;
AlignedCharArrayUnion<BucketT[InlineBuckets]> TmpStorage;
BucketT *TmpBegin = reinterpret_cast<BucketT *>(TmpStorage.buffer);
BucketT *TmpEnd = TmpBegin;