Chandler Carruth 6446d7e6d6 Add tests for *DenesMap for both key and value types' construction and
destruction and fix a bug in SmallDenseMap they caught.

This is kind of a poor-man's version of the testing that just adds the
addresses to a set on construction and removes them on destruction. We
check that double construction and double destruction don't occur.
Amusingly enough, this is enough to catch a lot of SmallDenseMap issues
because we spend a lot of time with fixed stable addresses in the inline
buffer.

The SmallDenseMap bug fix included makes grow() not double-destroy in
some cases. It also fixes a FIXME there, the code was pretty crappy. We
now don't have any wasted initialization, but we do move the entries in
inline bucket array an extra time. It's probably a better tradeoff, and
is much easier to get correct.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158639 91177308-0d34-0410-b5e6-96231b3b80d8
2012-06-17 10:33:51 +00:00
..
2012-06-02 08:39:08 +00:00
2011-07-21 23:03:59 +00:00
2011-03-01 22:07:32 +00:00
2012-03-14 22:36:10 +00:00
2012-05-11 23:34:39 +00:00
2012-02-05 22:14:15 +00:00
2012-02-05 22:14:15 +00:00
2012-05-19 19:32:11 +00:00