bruno added a comment.

Hi Juergen,

Thanks for working on this.



================
Comment at: include/clang/Basic/VirtualFileSystem.h:164
     EC = Impl->increment();
-    if (EC || !Impl->CurrentEntry.isStatusKnown())
+    if (!Impl->CurrentEntry.isStatusKnown())
       Impl.reset(); // Normalize the end iterator to Impl == nullptr.
----------------
I would rather we don't drop checks for `EC`s - it's commonly assumed that 
whenever they are passed in we wanna check them for errors, can't you just skip 
the specific case you want to avoid?


================
Comment at: lib/Basic/VirtualFileSystem.cpp:1860
   directory_iterator I = FS->dir_begin(Path, EC);
-  if (!EC && I != directory_iterator()) {
+  if (I != directory_iterator()) {
     State = std::make_shared<IterState>();
----------------
Same here.


================
Comment at: lib/Basic/VirtualFileSystem.cpp:1873
     vfs::directory_iterator I = FS->dir_begin(State->top()->getName(), EC);
-    if (EC)
+    if (EC && EC != std::errc::no_such_file_or_directory)
       return *this;
----------------
Can you add a comment explaining why you are doing it? I would prefer if we 
reset the `EC` state here than having the callers ignoring `EC` results.


https://reviews.llvm.org/D30768



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to