Fix for use-after-dtor bug in SmallVector. Circular dependency in class hierarchy:
SmallVector contains a SmallVectorStorage member.
This member is never explicitly referenced, but removing it results in major
test failures.
SmallVectorStorage contains a SmallVectorTemplateCommon member, which SmallVector
is also a subclass of.
This fix resolves some of the issues, but there are still failures arising
in connection with SmallVector.
This is different from the original code, why?
I assume this would introduce a bug where in big-mode it doesn't call the dtors on the elements of the vector?