Do not run tests for crash recovery if libstdc++ safe mode is enabled
authorSerge Pavlov <sepavloff@gmail.com>
Sat, 15 Apr 2017 05:53:49 +0000 (05:53 +0000)
committerSerge Pavlov <sepavloff@gmail.com>
Sat, 15 Apr 2017 05:53:49 +0000 (05:53 +0000)
commita693b907c7ffda969b9072d35b9704e55ca542fa
treec3c1d6c45e03a60378a960405092a89935ede7fd
parentf8a27a96e2f0d5078e7836fd831c292a070162d1
Do not run tests for crash recovery if libstdc++ safe mode is enabled

If expensive checks are enabled, safe mode of libstdc++ is enabled too.
In this mode the library uses more complex data that allow additional
checks, for instance, a container may keep list of iterators that points
to it. If a code crashes it can leave these complex library objects in
inconsistent state. It occurs in a few tests that check error recovery
if compiler crashes. These test hang in expensive check mode, as the
library tries to synchronize access to the iterators pointing to some
container, but corresponding mutex remains locked after the crash.

This fix marks these tests as unsupported if clang is built with
libstdc++ safe mode enabled.

Differential Revision: https://reviews.llvm.org/D31126

llvm-svn: 300392
clang/test/Index/crash-recovery-code-complete.c
clang/test/Index/crash-recovery-modules.m
clang/test/Index/crash-recovery-reparse.c
clang/test/Index/crash-recovery.c
clang/test/lit.cfg