27 #ifndef LLVM_SUPPORT_FILESYSTEM_H 28 #define LLVM_SUPPORT_FILESYSTEM_H 30 #include "llvm/Twine.h" 31 #include <system_error> 35 template <
typename T>
class SmallVectorImpl;
43 enum OpenFlags :
unsigned {
63 inline OpenFlags operator|(OpenFlags A, OpenFlags B) {
64 return OpenFlags(
unsigned(A) |
unsigned(B));
67 inline OpenFlags &operator|=(OpenFlags &A, OpenFlags B) {
72 std::error_code openFileForWrite(
const Twine &Name,
int &ResultFD,
73 OpenFlags Flags,
unsigned Mode = 0666);
75 std::error_code openFileForRead(
const Twine &Name,
int &ResultFD,
76 SmallVectorImpl<char> *RealPath =
nullptr);
84 #endif // LLVM_SUPPORT_FILESYSTEM_H