forked from OSchip/llvm-project
245218bb35
Handle named pipes natively in SourceManager and FileManager, removing a call to `SourceManager::overrideFileContents` in `CompilerInstance::InitializeSourceManager` (removing a blocker for sinking the content cache to FileManager (which will incidently sink this new named pipe logic with it)). SourceManager usually checks if the file entry's size matches the eventually loaded buffer, but that's now skipped for named pipes since the `stat` won't reflect the full size. Since we can't trust `ContentsEntry->getSize()`, we also need shift the check for files that are too large until after the buffer is loaded... and load the buffer immediately in `createFileID` so that no client gets a bad value from `ContentCache::getSize`. `FileManager::getBufferForFile` also needs to treat these files as volatile when loading the buffer. Native support in SourceManager / FileManager means that named pipes can also be `#include`d, and clang/test/Misc/dev-fd-fs.c was expanded to check for that. This is a new version of |
||
---|---|---|
.. | ||
Inputs | ||
amdgcn.languageOptsOpenCL.cl | ||
attr-source-range.cpp | ||
backend-optimization-failure-nodbg.cpp | ||
backend-optimization-failure.cpp | ||
backend-resource-limit-diagnostics.cl | ||
backend-stack-frame-diagnostics-fallback.cpp | ||
backend-stack-frame-diagnostics.cpp | ||
caret-diags-macros.c | ||
caret-diags-multiline.cpp | ||
caret-diags-scratch-buffer.c | ||
cc1as-asm-debug.s | ||
cc1as-asm.s | ||
cc1as-compress.s | ||
cc1as-split-dwarf.s | ||
dev-fd-fs.c | ||
diag-aka-types.cpp | ||
diag-format.c | ||
diag-greatergreater.cpp | ||
diag-inline-namespace.cpp | ||
diag-line-wrapping.cpp | ||
diag-macro-backtrace.c | ||
diag-macro-backtrace2.c | ||
diag-mapping.c | ||
diag-mapping2.c | ||
diag-null-bytes-in-line.cpp | ||
diag-presumed.c | ||
diag-special-chars.c | ||
diag-template-diffing-color.cpp | ||
diag-template-diffing-cxx98.cpp | ||
diag-template-diffing.cpp | ||
diag-template.cpp | ||
diag-trailing-null-bytes.cpp | ||
diag-verify.cpp | ||
diagnostic-crash.cpp | ||
driver-verify.c | ||
emit-html-insert.c | ||
emit-html.c | ||
error-limit-multiple-notes.cpp | ||
error-limit.c | ||
explicit.cpp | ||
find-diagnostic-id.c | ||
freebsd-arm-size_t.c | ||
include-stack-for-note-flag.cpp | ||
integer-literal-printing.cpp | ||
interpreter.c | ||
languageOptsOpenCL.cl | ||
loop-opt-setup.c | ||
macro-backtrace.c | ||
message-length.c | ||
no-warn-in-system-macro.c | ||
no-warn-in-system-macro.c.inc | ||
nvptx.languageOptsOpenCL.cl | ||
pr32207.c | ||
pragma-attribute-cxx.cpp | ||
pragma-attribute-objc.m | ||
pragma-attribute-strict-subjects.c | ||
pragma-attribute-supported-attributes-list.test | ||
predefines.c | ||
printer.c | ||
r600.languageOptsOpenCL.cl | ||
reduced-diags-macros-backtrace.cpp | ||
reduced-diags-macros.cpp | ||
remap-file.c | ||
serialized-diags-bcanalyzer.c | ||
serialized-diags-driver.c | ||
serialized-diags-frontend.c | ||
serialized-diags-no-category.c | ||
serialized-diags-no-issue.c | ||
serialized-diags-really-long-text.cpp | ||
serialized-diags-single-issue.c | ||
serialized-diags-stable.c | ||
serialized-diags.c | ||
serialized-diags.h | ||
serialized-diags.m | ||
show-diag-options.c | ||
tabstop.c | ||
target-invalid-cpu-note.c | ||
target-parser.c | ||
time-passes.c | ||
unnecessary-elipses.cpp | ||
unprintable.c | ||
verify.c | ||
warn-in-system-header.c | ||
warn-in-system-header.h | ||
warn-in-system-macro-def.c | ||
warn-in-system-macro-def.c.inc | ||
warn-sysheader.cpp | ||
warning-flags-enabled.c | ||
warning-flags-tree.c | ||
warning-flags.c | ||
warning-wall.c | ||
win32-macho.c | ||
working-directory.c | ||
wrong-encoding.c | ||
wrong-encoding2.c |