Mark addresses that are currently unused in a SmallVector as poisoned. This can help catch some iterator invalidation bugs when the SmallVector grows.
Running the ADTTest suite found an iterator invalidation bug in SmallVectorImpl<T>::insert(iterator, const T&) when the item to insert is contained inside the SmallVector.
is attribute unused the right one to use here?
(also LLVM doesn't usually use top-level const on local variables)
I'd probably add a (void)Size; down next to the poison call, like we'd use with variables only used in assertions