cling/patches
Vassil Vassilev 71910784b3 Instead of removing the FileEntry 'just' invalidate its cache.
When there is an error introduced by #include-ing a file we should be able to
hit the disk (in cling's context) the next time. The user could fix it in the
meanwhile.

Newer clang supports a flag which can be used to mark the user files as volatile.
This means that the file stat will be invalidated, causing clang to hit the
disk and fetch the new content of the FileEntry.

The complication comes from the fact that when the file size of the file entry
is invalidated the cache in the SourceManager is not syncronized, thus clang
issued an error. The patch in clang checks if the file size == 0 and the
modification time == 0 this means that we are in cling's context and have to sync
the cache and continue with no errors.

This fixes an issue exposed by Jerome's implementation. Before we removed the
entire FileEntry to achieve the same behavior, however the SourceManager kept
the reference to it. This leads to seg faults when iterating over the included
files (eg. .files or .storeState)
2013-09-18 20:33:04 +02:00
..
clang_diags.diff Adjust patch paths. 2013-08-26 12:07:52 +02:00
clang_multi_parsers.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang_root_autoloading_fwd_declares.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang_SourceManager_invalidPCHSourceFiles.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang_SourceManager_uncachefiles.diff Instead of removing the FileEntry 'just' invalidate its cache. 2013-09-18 20:33:04 +02:00
clang-ASTReaderDecl-friendDeclBug.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang-CodeGen.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang-Decl-clearLinkageCache.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang-HeaderSearch-cygwin.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang-ModuleBuilder-ConvertType.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
clang-Parser-Multiple-AndActOnEndOfTU.diff Update cling's patches to be relative to its LastKnownGood. 2013-04-26 11:45:17 +00:00
clang-Sema-enable_ActOnEndOfTU_cling.diff Update cling's patches to be relative to its LastKnownGood. 2013-04-26 11:45:17 +00:00
clang-ToolChains-Mageia.diff Improve patch paths. 2013-04-26 12:11:20 +00:00
cleanup_template_ids.diff Adjust patch paths. 2013-08-26 12:07:52 +02:00
llvm-dso_handle.diff This patch affects files in llvm, not clang. 2013-08-26 12:07:52 +02:00
llvm-DyLib-from-handle.diff Get the file patch right. 2013-08-21 16:43:33 +02:00
llvm-lib-ROOT-autoload-missing-symbol-non-function.diff Fix patch paths. 2013-04-26 12:09:54 +00:00
llvm-Makefile.diff Add targets cling-only; install-cling - reduces build-time for cling. ROOT-4868 2013-05-17 10:40:47 +02:00
llvm-PathMagicDLL.diff Update cling's patches to be relative to its LastKnownGood. 2013-04-26 11:45:17 +00:00
llvm-test-Makefile.diff Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00
llvm-tools-CMakeLists.txt.diff Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00
llvm-tools-Makefile.diff Move cling from cint/ to interpreter/ (Will add a "we have moved" readme to cint/cling.) 2012-09-05 09:37:39 +00:00