llvm-project/clang/test
Douglas Gregor 7029ce1a0c <rdar://problem/13363214> Eliminate race condition between module rebuild and the global module index.
The global module index was querying the file manager for each of the
module files it knows about at load time, to prune out any out-of-date
information. The file manager would then cache the results of the
stat() falls used to find that module file.

Later, the same translation unit could end up trying to import one of the
module files that had previously been ignored by the module cache, but
after some other Clang instance rebuilt the module file to bring it
up-to-date. The stale stat() results in the file manager would
trigger a second rebuild of the already-up-to-date module, causing
failures down the line.

The global module index now lazily resolves its module file references
to actual AST reader module files only after the module file has been
loaded, eliminating the stat-caching race. Moreover, the AST reader
can communicate to its caller that a module file is missing (rather
than simply being out-of-date), allowing us to simplify the
module-loading logic and allowing the compiler to recover if a
dependent module file ends up getting deleted.

llvm-svn: 177367
2013-03-19 00:28:20 +00:00
..
ARCMT [arcmt] Make sure the function has an associated parameter for the argument 2013-02-14 17:29:16 +00:00
ASTMerge Fix code that attempted to produce a diagnostic with one DiagnosticEngine, then 2012-12-20 02:22:15 +00:00
Analysis [analyzer] Warn when a ‘nil’ object is added to NSArray or NSMutableArray. 2013-03-18 20:46:56 +00:00
CXX Bring inheriting constructor implementation up-to-date with current defect 2013-03-18 21:12:30 +00:00
CodeCompletion PR14381: Never skip constexpr function bodies when code-completing. We may need 2012-11-19 21:13:18 +00:00
CodeGen PR15383: When -fsanitize=float-cast-overflow checks a float-to-int conversion, 2013-03-19 00:01:12 +00:00
CodeGenCUDA CUDA: give static storage class to __shared__ and __constant__ 2012-08-28 20:37:50 +00:00
CodeGenCXX Add missing diagnostic for a nested-name-specifier on a free-standing type definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations. 2013-03-18 22:52:47 +00:00
CodeGenObjC Generalize a few debug info test cases 2013-03-17 20:29:22 +00:00
CodeGenObjCXX Sema: Preserve attributes on parameters in instantiated function templates. 2013-03-08 22:25:36 +00:00
CodeGenOpenCL Fix indirect byval passing of records in address spaced memory. Allocate memory on stack, and memcpy the actual value before the call. 2013-03-10 12:59:00 +00:00
Coverage Objective-C: When using super.prop, property should be 2013-03-11 22:26:33 +00:00
Driver Make sure to use same EABI version for external assembler as for integrated as. 2013-03-18 07:59:20 +00:00
FixIt Fix warning text of my last patch. 2013-02-28 23:16:39 +00:00
Frontend [frontend] Initialize the diagnostic client before loading an ast file. 2013-03-18 22:55:24 +00:00
Headers libstdc++'s <cstdalign> #includes <stdalign.h> and expects it to guard against 2013-02-21 02:17:58 +00:00
Index [libclang] Modify clang_getCursorType to be able to handle a function template decl. 2013-03-18 23:54:50 +00:00
Lexer Add -Wc99-compat warning for C11 unicode string and character literals. 2013-03-11 18:01:42 +00:00
Misc Add missing diagnostic for a nested-name-specifier on a free-standing type definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations. 2013-03-18 22:52:47 +00:00
Modules <rdar://problem/13363214> Eliminate race condition between module rebuild and the global module index. 2013-03-19 00:28:20 +00:00
OpenMP Add initial rough support for synthesizing linker options when passed 2013-01-17 13:19:29 +00:00
PCH [PCH] Fix assertion hit related to enum decls inside templated funtions. 2013-03-18 22:23:49 +00:00
Parser Add missing diagnostic for a nested-name-specifier on a free-standing type definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations. 2013-03-18 22:52:47 +00:00
Preprocessor PR15539: Record "evaluating if/elif condition" flag in the right place 2013-03-18 23:22:28 +00:00
Rewriter Objective-C modern translator. Don't put line info 2013-03-18 19:41:18 +00:00
Sema documentation comment parsing. Added couple of 2013-03-18 23:45:52 +00:00
SemaCUDA
SemaCXX Diagnose uses of 'alignof' on functions in -pedantic mode. 2013-03-18 23:37:25 +00:00
SemaObjC Remove -Wspellcheck and replace it with a diagnostic option. 2013-03-16 01:40:35 +00:00
SemaObjCXX Sema: Preserve attributes on parameters in instantiated function templates. 2013-03-08 22:25:36 +00:00
SemaOpenCL Add support for the 'endian' attribute for OpenCL. 2013-03-14 09:54:43 +00:00
SemaTemplate Flag that friend function definitions are "late parsed" so that 2013-03-14 05:13:41 +00:00
TableGen Revert "tg-fixits.td: fixup for Linux" 2013-01-11 02:37:47 +00:00
Tooling ClangTool output cleanup 2013-03-15 20:14:01 +00:00
Unit Fixup for r176934. More careful setup of path to llvm-symbolizer 2013-03-15 07:29:58 +00:00
CMakeLists.txt Add llvm-symbolizer as test dependency. 2013-03-13 09:36:02 +00:00
Makefile
TestRunner.sh
cxx-sections.data
lit.cfg Fixup for r176934. More careful setup of path to llvm-symbolizer 2013-03-15 07:29:58 +00:00
lit.site.cfg.in
make_test_dirs.pl