================
@@ -2466,15 +2466,21 @@ Preprocessor::ImportAction 
Preprocessor::HandleHeaderIncludeOrImport(
         // The drive letter is optional for absolute paths on Windows, but
         // clang currently cannot process absolute paths in #include lines that
         // don't have a drive.
-        // If the first entry in Components is a directory separator,
-        // then the code at the bottom of this loop that keeps the original
-        // directory separator style copies it. If the second entry is
-        // a directory separator (the C:\ case), then that separator already
-        // got copied when the C: was processed and we want to skip that entry.
-        if (!(Component.size() == 1 && IsSep(Component[0])))
+        if (Component.size() == 1 && IsSep(Component[0])) {
+          // Note: Path always contains at least '<' or '"'.
+          if (Path.size() == 1) {
----------------
jansvoboda11 wrote:

I find the code easier to think about with `if (Path.size() == 1) { x } else { 
y }` compared to `if (Path.size() != 1) { y; continue; } x` to be honest:
* The `Path.size() == 1` condition is more specific than `Path.size() != 1`.
* To think about the path to `x`, you don't have to do double negation and 
notice the early `continue`.

https://github.com/llvm/llvm-project/pull/74782
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to