llvm/lib
Ted Kremenek c5412c58d2 Re-implemented Path::createDirectoryOnDisk (for Unix).
This method allows one to create a directory, and optionally create all parent
directories that do not exist.

The original implementation would require that *all* directories along a path
are writable by the user, including directories that already exist. For example,
suppose we wanted to create the directory "/tmp/foo/bar", and the directory
"/tmp" already exists, but not "/tmp/foo". Since "/tmp" is writable by all
users, the original implementation would work, and create "/tmp/foo", followed
by "/tmp/bar".

A problem occurred, however if one wanted to created the directory
"/Users/myuser/bar" (or equivalently "/home/myuser/bar"), and "/Users/myuser"
already existed and is writable by the current user. The directory
"/User/myuser" is writable by the user, but "/User" is not. The original
implementation of createDirectoryOnDisk would return with failure since "/User"
is not writable, even though "/User/mysuser" is writable.

The new implementation works by recursively creating parents as needed, and thus
doesn't need to check the permissions on every directory in a path.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49162 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-03 16:11:31 +00:00
..
Analysis Set blockBegin to point to the beginning of the block, 2008-03-31 22:08:00 +00:00
Archive Change the MemoryBuffer::getFile* methods to take just a pointer to the 2008-04-01 18:04:03 +00:00
AsmParser Change the MemoryBuffer::getFile* methods to take just a pointer to the 2008-04-01 18:04:03 +00:00
Bitcode Add explicit keywords. 2008-03-25 22:06:05 +00:00
CodeGen Backing out 48222 temporarily. 2008-04-03 03:13:16 +00:00
Debugger Change the MemoryBuffer::getFile* methods to take just a pointer to the 2008-04-01 18:04:03 +00:00
ExecutionEngine Fix "Control reaches the end of non-void function" warnings, 2008-03-30 18:22:13 +00:00
Linker Change the MemoryBuffer::getFile* methods to take just a pointer to the 2008-04-01 18:04:03 +00:00
Support Fix compilation errors on MSVC. Patch by Argiris Kirtzidis! 2008-04-01 22:09:20 +00:00
System Re-implemented Path::createDirectoryOnDisk (for Unix). 2008-04-03 16:11:31 +00:00
Target Re-enable SSE4. 2008-04-03 08:53:29 +00:00
Transforms Iterators folloring a SmallVector erased element are invalidated so 2008-04-02 18:24:46 +00:00
VMCore Change the MemoryBuffer::getFile* methods to take just a pointer to the 2008-04-01 18:04:03 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00