Reid Kleckner
e7ff008462
[Support] Fix some warnings when self-hosting clang on Windows
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186413 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-16 14:04:08 +00:00
Rafael Espindola
87be8d353b
Add a version of sys::fs::status that uses fstat.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186378 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-16 03:20:13 +00:00
Rafael Espindola
77e31bca03
Instead friending status, provide windows and posix constructors to file_status.
...
This opens the way of having static helpers in the .inc files that can
construct a file_status.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186376 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-16 02:55:33 +00:00
Craig Topper
3259d61895
Add include to hopefully fix windows build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186310 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-15 07:15:05 +00:00
Craig Topper
b9df53a40b
Use llvm::array_lengthof to replace sizeof(array)/sizeof(array[0]).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186301 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-15 04:27:47 +00:00
NAKAMURA Takumi
99a8b54840
Windows/TimeValue.inc: Mute prefixed '0' on %d to emulate %e.
...
It fixes compatibility in llvm/test/Object/archive-toc.test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186142 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-12 02:13:03 +00:00
Rafael Espindola
73480481f4
Add back code for supporting old mingw versions. Should bring the bots back.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186096 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-11 16:11:21 +00:00
Rafael Espindola
978e17e15d
Looks like some versions of mingw don't have errno_t. Use int.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186092 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-11 15:47:04 +00:00
Rafael Espindola
71857ccdb8
Fix a FIXME about the format and add a test.
...
While at it, use strftime on Unix too and use the thread safe versions
of localtime.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186090 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-11 15:35:23 +00:00
Rafael Espindola
ac2de33d2a
Use status to implement file_size.
...
The status function is already using a syscall that returns the file size.
Remember it and implement file_size as a simple wrapper.
No functionally change, but clients that already use status now can avoid
calling file_size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186016 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-10 17:16:40 +00:00
Rafael Espindola
1cce797d32
We now always create files with the correct permissions. Simplify the interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185834 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-08 16:42:01 +00:00
Rafael Espindola
8e7294f995
Improvements to unique_file and createUniqueDirectory.
...
* Don't try to create parent directories in unique_file. It had two problem:
* It violates the contract that it is atomic. If the directory creation
success and the file creation fails, we would return an error but the
file system was modified.
* When creating a temporary file clang would have to first check if the
parent directory existed or not to avoid creating one when it was not
supposed to.
* More efficient implementations of createUniqueDirectory and the unique_file
that produces only the file name. Now all 3 just call into a static
function passing what they want (name, file or directory).
Clang also has to be updated, so tests might fail if a bot picks up this commit
and not the corresponding clang one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185126 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-28 03:48:47 +00:00
Rafael Espindola
7a231f5a1e
Rename PathV2 to just Path now that it is the only one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185015 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-26 19:33:03 +00:00
Rafael Espindola
460e75a453
PathV1 is deprecated since the 18th of Dec 2010. Remove it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184960 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-26 16:24:35 +00:00
Rafael Espindola
bdfe4399db
Remove sys::GetMainExecutable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184916 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-26 05:05:37 +00:00
Rafael Espindola
50188c1f42
Port GetMainExecutable over to PathV2.
...
I will remove the V1 version as soon as I change clang in the next commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184914 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-26 05:01:35 +00:00
Rafael Espindola
2c63b27e9f
Remove PathWithStatus.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184910 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-26 04:15:55 +00:00
Rafael Espindola
46fa7cf91a
Move GetEXESuffix to the one place it is used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184853 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-25 14:42:30 +00:00
Rafael Espindola
deeb5724b8
Remove sys::PathSeparator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184852 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-25 14:32:45 +00:00
Rafael Espindola
b0bdcb5f8a
make getLastModificationTime const. Move it with the other getters.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184478 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 21:51:49 +00:00
Rafael Espindola
11ca2e508c
Add a setLastModificationAndAccessTime to PathV2.
...
With this we can remove the last use of PathV1 from llvm-ar.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184464 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 20:56:14 +00:00
Rafael Espindola
29c17db650
Add support for getting the last modification time from a file_status.
...
Use that in llvm-ar.cpp to replace a use of sys::PathWithStatus.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184450 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 18:42:04 +00:00
Rafael Espindola
9aa3365426
Rename fs::GetUniqueID to fs::getUniqueID to match the style guide.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184431 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 15:06:35 +00:00
Aaron Ballman
4655485eb7
Modified the implementation of fs::GetUniqueID on Windows such that it actually finds a unique identifier for a file. Also adds unit tests for GetUniqueID.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184351 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 21:03:50 +00:00
Rafael Espindola
7c8397081c
Remove Path::getDirectoryContents.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184311 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 15:32:37 +00:00
Rafael Espindola
f6f3be69d8
Remove Path::canExecute.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184298 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-19 13:25:31 +00:00
Rafael Espindola
1fbf3a3aca
Remove Path::canWrite.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184235 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 21:10:03 +00:00
Rafael Espindola
68ba1825fc
Add a can_write function to PathV2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184233 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 20:56:38 +00:00
Rafael Espindola
f3426a482e
Remove unused Path::canRead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184229 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 20:42:25 +00:00
Rafael Espindola
2e0f70bdd8
Remove uniqueID from PathV1.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184219 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 19:46:19 +00:00
Rafael Espindola
605510d16e
Add a GetUniqueID that will replace the uniqueID of PathV1.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184217 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 19:34:49 +00:00
Rafael Espindola
9e89fe77ce
Add GetCurrentDirectory back.
...
It looks like clang-tools-extra/unittests/cpp11-migrate/TransformTest.cpp
depends on the behaviour of the old one on Windows. Maybe a difference
between GetCurrentDirectoryA and GetCurrentDirectoryW?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184009 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-14 21:41:33 +00:00
Rafael Espindola
76858a7abd
Replace use of PathV1.h in MCContext.cpp.
...
GetCurrentDirectory is now unused. Remove it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184003 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-14 20:26:58 +00:00
Rafael Espindola
fcba9c56a2
Replace use of PathV1.h in Program.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183996 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-14 19:38:45 +00:00
Rafael Espindola
f3fa6837bf
Remove unused argument.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183992 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-14 18:12:13 +00:00
Rafael Espindola
d86dd4a29d
Remove a use of sys::Path.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183979 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-14 13:59:21 +00:00
Rafael Espindola
26d36ab0cc
Try to fix the windows build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183950 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-13 21:38:21 +00:00
Rafael Espindola
b7e2188f7f
Don't use PathV1.h in Signals.h.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183947 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-13 21:16:58 +00:00
Rafael Espindola
6585b388cb
Have sys::FindProgramByName return a std::string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183928 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-13 19:25:37 +00:00
Reid Kleckner
62d124a1fa
[Support] Fix handle and memory leak for processes that are not waited for
...
Execute's Data parameter is now optional, so we won't allocate memory
for it on Windows and we'll close the process handle.
The Unix code should probably do something similar to avoid accumulation
of zombie children that haven't been waited on.
Tested on Linux and Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183906 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-13 15:27:17 +00:00
Rafael Espindola
a03a80f3ce
[Win] Put ChangeStdinToBinary ChangeStdoutToBinary ChangeStderrToBinary in sys.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183868 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 21:25:04 +00:00
Rafael Espindola
e4f7e3109e
s/Void/void.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183866 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 21:16:07 +00:00
Rafael Espindola
42f756f39e
Attempt at fixing the windows build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183865 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 21:11:50 +00:00
Rafael Espindola
2a4005688c
Remove Path::getMagicNumber.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183839 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 15:07:11 +00:00
Rafael Espindola
fa2bbb31fa
Remove Path::isAbsolute.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183836 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 15:02:39 +00:00
Rafael Espindola
5475e2b01e
Remove Path::isAbsolute().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183835 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 14:47:33 +00:00
Rafael Espindola
55d529fd8a
Remove Path::getSuffix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183833 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 14:32:51 +00:00
Rafael Espindola
36782c514a
Remove sys::CopyFile.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183831 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 14:16:52 +00:00
Rafael Espindola
2e0372d69a
Remove the old file memory mapping functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183828 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 14:11:15 +00:00
Rafael Espindola
ddee9b4691
Remove Path::createFileOnDisk.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183827 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 13:59:17 +00:00