Rafael Espindola
9da91a0e03
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.
llvm-svn: 186376
2013-07-16 02:55:33 +00:00
Rafael Espindola
4d08d8bada
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.
llvm-svn: 186016
2013-07-10 17:16:40 +00:00
Rafael Espindola
a8a9f1baf0
We now always create files with the correct permissions. Simplify the interface.
...
llvm-svn: 185834
2013-07-08 16:42:01 +00:00
Eric Christopher
a24dc7fa8c
Reapply r185601 with a fix for the cmake build.
...
llvm-svn: 185605
2013-07-04 01:10:38 +00:00
Eric Christopher
3eb07a0963
Temporarily revert 185601 as it caused cmake build regressions.
...
llvm-svn: 185603
2013-07-04 00:51:26 +00:00
Eric Christopher
aaf58cc3c4
Add support for futimens for platforms that don't support futimes.
...
Patch by pashev.igor.
llvm-svn: 185601
2013-07-04 00:47:09 +00:00
Patrik Hagglund
dcc336bf8e
Suppress GCC "control reaches end of non-void function" warning.
...
llvm-svn: 185136
2013-06-28 06:54:05 +00:00
Rafael Espindola
e79a87226a
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.
llvm-svn: 185126
2013-06-28 03:48:47 +00:00
Rafael Espindola
f1fc3829a8
Rename PathV2 to just Path now that it is the only one.
...
llvm-svn: 185015
2013-06-26 19:33:03 +00:00
Rafael Espindola
b0f2eba499
PathV1 is deprecated since the 18th of Dec 2010. Remove it.
...
llvm-svn: 184960
2013-06-26 16:24:35 +00:00
Rafael Espindola
4b304b0abf
Remove sys::GetMainExecutable.
...
llvm-svn: 184916
2013-06-26 05:05:37 +00:00
Rafael Espindola
00efef2835
Remove PathWithStatus.
...
llvm-svn: 184910
2013-06-26 04:15:55 +00:00
Rafael Espindola
242fcb846e
Move GetEXESuffix to the one place it is used.
...
llvm-svn: 184853
2013-06-25 14:42:30 +00:00
Rafael Espindola
db7c03f05e
Remove sys::PathSeparator.
...
llvm-svn: 184852
2013-06-25 14:32:45 +00:00
Rafael Espindola
02d0ec8e70
Remove Path::getDirectoryContents.
...
llvm-svn: 184311
2013-06-19 15:32:37 +00:00
Rafael Espindola
988252dcd2
Remove Path::canExecute.
...
llvm-svn: 184298
2013-06-19 13:25:31 +00:00
Rafael Espindola
2bf893664b
Remove Path::canWrite.
...
llvm-svn: 184235
2013-06-18 21:10:03 +00:00
Rafael Espindola
3025f2366f
Remove unused Path::canRead.
...
llvm-svn: 184229
2013-06-18 20:42:25 +00:00
Rafael Espindola
8f181a5406
Remove uniqueID from PathV1.h.
...
llvm-svn: 184219
2013-06-18 19:46:19 +00:00
Rafael Espindola
158d537c5a
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?
llvm-svn: 184009
2013-06-14 21:41:33 +00:00
Rafael Espindola
ef03b9fc52
Replace use of PathV1.h in MCContext.cpp.
...
GetCurrentDirectory is now unused. Remove it.
llvm-svn: 184003
2013-06-14 20:26:58 +00:00
Rafael Espindola
b703be2544
Remove Path::getMagicNumber.
...
llvm-svn: 183839
2013-06-12 15:07:11 +00:00
Rafael Espindola
af93517dde
Remove Path::isAbsolute.
...
llvm-svn: 183836
2013-06-12 15:02:39 +00:00
Rafael Espindola
87b03450ee
Remove Path::isAbsolute().
...
llvm-svn: 183835
2013-06-12 14:47:33 +00:00
Rafael Espindola
46e2ea64cc
Remove Path::getSuffix.
...
llvm-svn: 183833
2013-06-12 14:32:51 +00:00
Rafael Espindola
ec4f0fc7c1
Remove sys::CopyFile.
...
llvm-svn: 183831
2013-06-12 14:16:52 +00:00
Rafael Espindola
d88308767b
Remove the old file memory mapping functions.
...
llvm-svn: 183828
2013-06-12 14:11:15 +00:00
Rafael Espindola
1d08f5ae7c
Remove Path::createFileOnDisk.
...
llvm-svn: 183827
2013-06-12 13:59:17 +00:00
Rafael Espindola
d5fd942ec3
Remove Path::makeExecutableOnDisk.
...
llvm-svn: 183826
2013-06-12 13:55:07 +00:00
Rafael Espindola
c656225b9d
Remove Path::getDirname.
...
llvm-svn: 183780
2013-06-11 19:32:57 +00:00
Rafael Espindola
4d725f66bd
Remove Path::getBasename.
...
llvm-svn: 183779
2013-06-11 19:29:48 +00:00
Rafael Espindola
7fc279aecb
Remove Path::getLast.
...
llvm-svn: 183778
2013-06-11 19:25:17 +00:00
Rafael Espindola
75f89f5225
Remove GetRootDirectory.
...
llvm-svn: 183775
2013-06-11 19:13:52 +00:00
Rafael Espindola
8b86c6c509
Remove GetUserHomeDirectory.
...
llvm-svn: 183773
2013-06-11 19:08:15 +00:00
Rafael Espindola
8cc6dc26bb
Remove GetSystemLibraryPaths.
...
llvm-svn: 183770
2013-06-11 18:58:47 +00:00
Rafael Espindola
b5f4a1b0ba
Remove Path::GetBitcodeLibraryPaths.
...
llvm-svn: 183765
2013-06-11 18:45:35 +00:00
Sylvestre Ledru
12c44e57f5
The assumption that /proc/self/exe always exists is incorrect.
...
For example, under a Linux chroot, /proc/ might not be mounted.
Therefor, we test if this file exist. If it is the case, use it (the current
behavior). Otherwise, we fall back to the detection used by *BSD.
The issue has been reported initially on the Debian bug tracker:
http://bugs.debian.org/674588
llvm-svn: 164676
2012-09-26 08:30:35 +00:00
Eric Christopher
22738d00a3
Add support for the OpenBSD for Bitrig.
...
Patch by David Hill.
llvm-svn: 161344
2012-08-06 20:52:18 +00:00
Galina Kistanova
7da6578291
Fixed few warnings.
...
llvm-svn: 160142
2012-07-12 20:45:36 +00:00
Sylvestre Ledru
14ada94682
Fix the build under Debian GNU/Hurd.
...
Thanks to Pino Toscano for the patch
llvm-svn: 154500
2012-04-11 15:35:36 +00:00
Anton Korobeynikov
4547077a2b
Fix GetMainExecutable on kFreeBSD.
...
Patch by Sylvestre Ledru!
llvm-svn: 153435
2012-03-26 12:05:51 +00:00
Eli Friedman
39df70c33a
Remove a couple unused methods. PR11201.
...
llvm-svn: 143452
2011-11-01 05:11:01 +00:00
Nick Lewycky
9ee5f77141
Don't look at $PWD in GetCurrentDirectory.
...
llvm-svn: 136477
2011-07-29 18:26:59 +00:00
Nick Lewycky
38b9b568b9
Teach Path::GetCurrentDirectory to use $PWD, to support users who like to do
...
screwy things by setting PWD != getcwd(). For example, some developers I know
will use this to control the value in gcc's DW_AT_comp_dir value in debug
output. With this patch, that trick will now work on clang too.
The only other effect of this change is that the static analysis will now
respect $PWD when reporting the directory of the files in its HTML output. I
think that's fine.
llvm-svn: 136459
2011-07-29 04:42:39 +00:00
Chad Rosier
30c3463309
By default mkstemp() creates a temporary file with mode 0600, but the mode
...
used for open is 0666. Therefore, add the necessary permission bits for
consistency.
rdar://8621462
llvm-svn: 134430
2011-07-05 18:55:31 +00:00
Rafael Espindola
258a605fce
Add r127409 back now that the windows file was updated.
...
llvm-svn: 127417
2011-03-10 18:33:29 +00:00
Jakob Stoklund Olesen
e413d9d341
Revert r127409 which broke all the Windows bots.
...
llvm-svn: 127413
2011-03-10 18:01:43 +00:00
Rafael Espindola
ea5a137e55
Add support for MemoryBuffers that are not null terminated and add
...
support for creating buffers that cover only a part of a file.
llvm-svn: 127409
2011-03-10 16:10:30 +00:00
Chris Lattner
c37910ea28
improve support for OpenBSD, patch by Amit Kulkarni!
...
llvm-svn: 125943
2011-02-18 17:04:56 +00:00
Michael J. Spencer
0d771edeee
Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.
...
llvm-svn: 123209
2011-01-11 01:21:55 +00:00