llvm-6502/unittests
Duncan Sands bcc2393369 Fix the ValueMap copy constructor. The issue is that the map keys are value
handles with a pointer to the containing map.  When a map is copied, these
pointers need to be corrected to point to the new map.  If not, then consider
the case of a map M1 which maps a value V to something.  Create a copy M2 of
M1.  At this point there are two value handles on V, one representing V as a
key in M1, the other representing V as a key in M2.  But both value handles
point to M1 as the containing map.  Now delete V.  The value handles remove
themselves from their containing map (which destroys them), but only the first
value handle is successful: the second one cannot remove itself from M1 as
(once the first one has removed itself) there is nothing there to remove; it
is therefore not destroyed.  This causes an assertion failure "All references
to V were not removed?".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109851 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-30 05:49:32 +00:00
..
ADT Fix the ValueMap copy constructor. The issue is that the map keys are value 2010-07-30 05:49:32 +00:00
ExecutionEngine missed a use of SizeRequired. 2010-07-22 21:34:55 +00:00
Support add dyn_cast_or_null tests, exclude invalid dyn_cast test 2010-07-22 15:37:20 +00:00
Transforms Teach this test not to leak. Also, clean up all the cast<BinaryOperator> cruft. 2010-03-13 19:58:26 +00:00
VMCore Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
Makefile Remove the temporary hack, now that the llvm-i686-linux buildbot has 2010-07-29 22:55:29 +00:00
Makefile.unittest Disable pthread support in googletest if llvm was configured without threads. 2010-06-03 15:17:04 +00:00