Skip to content

Commit

Permalink
Revert r273664
Browse files Browse the repository at this point in the history
Revert change until build issues with MSVC can be resolved.

llvm-svn: 273670
  • Loading branch information
hubert-reinterpretcast committed Jun 24, 2016
1 parent 0d97270 commit 3e2c30d
Showing 1 changed file with 0 additions and 44 deletions.
44 changes: 0 additions & 44 deletions llvm/include/llvm/Support/TrailingObjects.h
Expand Up @@ -342,50 +342,6 @@ class TrailingObjects : private trailing_objects_internal::TrailingObjectsImpl<
TrailingTys, size_t>::type... Counts) {
return sizeof(BaseTy) + ParentType::additionalSizeToAllocImpl(0, Counts...);
}

/// A type where its ::with_counts template member has a ::type member
/// suitable for use as uninitialized storage for an object with the given
/// trailing object counts. The template arguments are similar to those
/// of additionalSizeToAlloc.
///
/// Use with FixedSizeStorageOwner, e.g.:
///
/// \code{.cpp}
///
/// MyObj::FixedSizeStorage<void *>::with_counts<1u>::type myStackObjStorage;
/// MyObj::FixedSizeStorageOwner
/// myStackObjOwner(new ((void *)&myStackObjStorage) MyObj);
/// MyObj *const myStackObjPtr = myStackObjOwner.get();
///
/// \endcode
template <typename... Tys> struct FixedSizeStorage {
template <size_t... Counts> struct with_counts {
typedef llvm::AlignedCharArray<
llvm::AlignOf<BaseTy>::Alignment, totalSizeToAlloc<Tys...>(Counts...)
> type;
};
};

/// A type that acts as the owner for an object placed into fixed storage.
class FixedSizeStorageOwner {
public:
FixedSizeStorageOwner(BaseTy *p) : p(p) {}
~FixedSizeStorageOwner() {
assert(p && "FixedSizeStorageOwner owns null?");
p->~BaseTy();
}

BaseTy *get() { return p; }
const BaseTy *get() const { return p; }

private:
FixedSizeStorageOwner(const FixedSizeStorageOwner &) = delete;
FixedSizeStorageOwner(FixedSizeStorageOwner &&) = delete;
FixedSizeStorageOwner &operator=(const FixedSizeStorageOwner &) = delete;
FixedSizeStorageOwner &operator=(FixedSizeStorageOwner &&) = delete;

BaseTy *const p;
};
};

} // end namespace llvm
Expand Down

0 comments on commit 3e2c30d

Please sign in to comment.