Disable some IR death tests when SEH is available

They hang for me locally. I suspect that there is a use-after-free when
attempting to destroy an LLVMContext after asserting from the middle of
metadata tracking. It doesn't seem worth debugging it further.

llvm-svn: 310660
This commit is contained in:
Reid Kleckner 2017-08-10 21:14:07 +00:00
parent f8556ad48f
commit 6be1ed05c7
1 changed files with 6 additions and 3 deletions

View File

@ -2466,8 +2466,12 @@ TEST_F(DistinctMDOperandPlaceholderTest, replaceUseWithNoUser) {
DistinctMDOperandPlaceholder(7).replaceUseWith(MDTuple::get(Context, None));
}
#ifndef NDEBUG
#ifdef GTEST_HAS_DEATH_TEST
// Test various assertions in metadata tracking. Don't run these tests if gtest
// will use SEH to recover from them. Two of these tests get halfway through
// inserting metadata into DenseMaps for tracking purposes, and then they
// assert, and we attempt to destroy an LLVMContext with broken invariants,
// leading to infinite loops.
#if defined(GTEST_HAS_DEATH_TEST) && !defined(NDEBUG) && !defined(GTEST_HAS_SEH)
TEST_F(DistinctMDOperandPlaceholderTest, MetadataAsValue) {
// This shouldn't crash.
DistinctMDOperandPlaceholder PH(7);
@ -2509,6 +2513,5 @@ TEST_F(DistinctMDOperandPlaceholderTest, TrackingMDRefAndDistinctMDNode) {
}
}
#endif
#endif
} // end namespace