If someone would prefer a clear name for the 'success' error_value we could
come up with one - potentially just a 'named constructor' style
'error_value::success()' to make this expression more self-documenting. If
I see this come up in other cases I'll certainly consider it.
One step along the way to resolving PR11944.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150120
91177308-0d34-0410-b5e6-
96231b3b80d8
-const static error_code success;
-
// Very simple stream backed by a file. Mostly useful for stdin and debugging;
// actual file access is probably still best done with mmap.
class DataFileStreamer : public DataStreamer {
// Very simple stream backed by a file. Mostly useful for stdin and debugging;
// actual file access is probably still best done with mmap.
class DataFileStreamer : public DataStreamer {
}
error_code OpenFile(const std::string &Filename) {
}
error_code OpenFile(const std::string &Filename) {
- int OpenFlags = O_RDONLY;
-#ifdef O_BINARY
- OpenFlags |= O_BINARY; // Open input file in binary mode on win32.
-#endif
if (Filename == "-") {
Fd = 0;
sys::Program::ChangeStdinToBinary();
if (Filename == "-") {
Fd = 0;
sys::Program::ChangeStdinToBinary();
- else
- Fd = ::open(Filename.c_str(), OpenFlags);
- if (Fd == -1) return error_code(errno, posix_category());
- return success;
+
+ int OpenFlags = O_RDONLY;
+#ifdef O_BINARY
+ OpenFlags |= O_BINARY; // Open input file in binary mode on win32.
+#endif
+ Fd = ::open(Filename.c_str(), OpenFlags);
+ if (Fd == -1)
+ return error_code(errno, posix_category());
+ return error_code();
DataStreamer *getDataFileStreamer(const std::string &Filename,
std::string *StrError) {
DataFileStreamer *s = new DataFileStreamer();
DataStreamer *getDataFileStreamer(const std::string &Filename,
std::string *StrError) {
DataFileStreamer *s = new DataFileStreamer();
- error_code e = s->OpenFile(Filename);
- if (e != success) {
+ if (error_code e = s->OpenFile(Filename)) {
*StrError = std::string("Could not open ") + Filename + ": " +
e.message() + "\n";
return NULL;
*StrError = std::string("Could not open ") + Filename + ": " +
e.message() + "\n";
return NULL;