Chromium Code Reviews
Descriptionllvm: workaround for dangling debug info
Value.cpp fires an assertion when there is a dangling
reference to a Value from the "UseList". I.e., it may
have been added to the UseList twice, but only removed
once before deletion.
Occasionally debug nodes are duplicated when they should
not be, or DAGs are formed when they should not be, after
bitcode linking. This may set up the above issue. For now,
while we are still debugging the bitcode linking, try
the following workaround.
Turn the LexicalScope's value handle for debug info from
AssertingVH to WeakVH, by hacking AssertingVH to be able
to be switched to Weak (really gross). WeakVH get cleaned
up by ValueIsDeleted and remove themselves from the
list, while AssertingVH do not (see lib/VMCore/Value.cpp).
Thus, this prevents the original assert from triggering.
We've only seen the assertion while llvm is shutting down,
hopefully this workaround won't be a problem, and it only
affects debug mode.
BUG= http://code.google.com/p/nativeclient/issues/detail?id=2786
TEST= tumbler, IRT, dosbox with -g
Patch Set 1 #
Messages
Total messages: 2 (0 generated)
|
||||||||||||||||||||||||||||