llvm-project/clang/lib/Basic
Argyrios Kyrtzidis 71731d6b05 Implement -working-directory.
When -working-directory is passed in command line, file paths are resolved relative to the specified directory.
This helps both when using libclang (where we can't require the user to actually change the working directory)
and to help reproduce test cases when the reproduction work comes along.

--FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains
 the working directory value if set).
--FileSystemOptions are passed around to various interfaces that perform file operations.
--Opening & reading the content of files should be done only through FileManager. This is useful in general since
 file operations will be abstracted in the future for the reproduction mechanism.

FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same
FileManager but with different FileSystemOptions.

Addresses rdar://8583824.

llvm-svn: 118203
2010-11-03 22:45:23 +00:00
..
Builtins.cpp Add builtin definition for scanf, including extending the builtin encoding to 2010-07-16 02:11:15 +00:00
CMakeLists.txt Don't try to guess svn version when current path is a symlink. 2010-10-22 17:16:39 +00:00
ConvertUTF.c Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
Diagnostic.cpp Teach Diagnostic to recursively expand inside %plural formats. 2010-10-14 01:55:31 +00:00
FileManager.cpp Implement -working-directory. 2010-11-03 22:45:23 +00:00
IdentifierTable.cpp Rename alignof -> alignOf to avoid irritating C++'0x compilers, 2010-10-30 05:14:06 +00:00
Makefile Basic: Simplify getClangRepositoryPath and getClangRevision. 2010-09-29 19:15:29 +00:00
SourceLocation.cpp Update get*LineNumber() and get*ColumnNumber() functions to pass the 2010-03-16 20:53:17 +00:00
SourceManager.cpp Implement -working-directory. 2010-11-03 22:45:23 +00:00
TargetInfo.cpp When setting a tied check if it's already tied. If it's tied to another constraint it's invalid. Fixes PR3905. 2010-11-03 02:54:51 +00:00
Targets.cpp Handle Type.h a better way. 2010-10-29 23:24:33 +00:00
TokenKinds.cpp This patch adds a PUNCTUATOR macro (specialization of TOK) in TokenKinds.def and makes use of it in tok::getTokenSimpleSpelling. 2009-11-28 16:09:28 +00:00
Version.cpp Basic: Tweak attempt to make version tags work from 'svn export's again, clip 2010-10-11 23:50:34 +00:00