mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-27 13:40:43 +00:00
Mimic gcc behaviour with regard to response files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62688 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e441b831c0
commit
1421b7bc23
@ -78,8 +78,24 @@ options intended for developers.
|
||||
|
||||
Print version information and exit.
|
||||
|
||||
=item B<@>I<file>
|
||||
|
||||
Read command-line options from I<file>. The options read are inserted
|
||||
in place of the original @I<file> option. If I<file> does not exist, or
|
||||
cannot be read, then the option will be treated literally, and not
|
||||
removed.
|
||||
|
||||
Options in I<file> are separated by whitespace. A whitespace character
|
||||
may be included in an option by surrounding the entire option in
|
||||
either single or double quotes. Any character (including a backslash)
|
||||
may be included by prefixing the character to be included with a
|
||||
backslash. The file may itself contain additional @I<file> options;
|
||||
any such options will be processed recursively.
|
||||
|
||||
|
||||
=back
|
||||
|
||||
|
||||
=head2 Control Options
|
||||
|
||||
By default, LLVMC is built with some standard configuration libraries
|
||||
|
@ -388,23 +388,22 @@ static void ExpandResponseFiles(int argc, char** argv,
|
||||
// Check that the response file is not empty (mmap'ing empty
|
||||
// files can be problematic).
|
||||
const sys::FileStatus *FileStat = respFile.getFileStatus();
|
||||
if (!FileStat)
|
||||
continue;
|
||||
if (FileStat->getSize() == 0)
|
||||
continue;
|
||||
if (FileStat && FileStat->getSize() != 0) {
|
||||
|
||||
// Mmap the response file into memory.
|
||||
OwningPtr<MemoryBuffer>
|
||||
respFilePtr(MemoryBuffer::getFile(respFile.c_str()));
|
||||
// Mmap the response file into memory.
|
||||
OwningPtr<MemoryBuffer>
|
||||
respFilePtr(MemoryBuffer::getFile(respFile.c_str()));
|
||||
|
||||
if (respFilePtr == 0)
|
||||
continue;
|
||||
|
||||
ParseCStringVector(newArgv, respFilePtr->getBufferStart());
|
||||
}
|
||||
else {
|
||||
newArgv.push_back(strdup(arg));
|
||||
// If we could open the file, parse its contents, otherwise
|
||||
// pass the @file option verbatim.
|
||||
// TODO: support recursion.
|
||||
if (respFilePtr != 0) {
|
||||
ParseCStringVector(newArgv, respFilePtr->getBufferStart());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
newArgv.push_back(strdup(arg));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user