Make LLVM command-line tools overwrite their output files without -f.
This is conventional command-line tool behavior. -f now just means
"enable binary output on terminals".
Add a -f option to llvm-extract and llvm-link, for consistency.
Remove F_Force from raw_fd_ostream and enable overwriting and
truncating by default. Introduce an F_Excl flag to permit users to
enable a failure when the file already exists. This flag is
currently unused.
Update Makefiles and documentation accordingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79990 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/raw_ostream.cpp b/lib/Support/raw_ostream.cpp
index 230d9a8..a229efd 100644
--- a/lib/Support/raw_ostream.cpp
+++ b/lib/Support/raw_ostream.cpp
@@ -335,9 +335,9 @@
/// if no error occurred.
raw_fd_ostream::raw_fd_ostream(const char *Filename, std::string &ErrorInfo,
unsigned Flags) : pos(0) {
- // Verify that we don't have both "append" and "force".
- assert((!(Flags & F_Force) || !(Flags & F_Append)) &&
- "Cannot specify both 'force' and 'append' file creation flags!");
+ // Verify that we don't have both "append" and "excl".
+ assert((!(Flags & F_Excl) || !(Flags & F_Append)) &&
+ "Cannot specify both 'excl' and 'append' file creation flags!");
ErrorInfo.clear();
@@ -358,11 +358,11 @@
OpenFlags |= O_BINARY;
#endif
- if (Flags & F_Force)
- OpenFlags |= O_TRUNC;
- else if (Flags & F_Append)
+ if (Flags & F_Append)
OpenFlags |= O_APPEND;
else
+ OpenFlags |= O_TRUNC;
+ if (Flags & F_Excl)
OpenFlags |= O_EXCL;
FD = open(Filename, OpenFlags, 0664);