klimek added inline comments.
================
Comment at: lib/Basic/FileManager.cpp:167-168
DirNameStr = DirName.str() + '.';
+ llvm::sys::path::native(DirNameStr);
+ DirName = DirNameStr;
+ } else {
----------------
I'd add a canonicalizePath function that:
-> on unix just returns the path
-> on windows, does the ::native dance and returns that path
Then we can call that when we access the cache or write to the cache instead of
sprinkling #ifdefs around.
================
Comment at: lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:1716-1717
Loc = Loc.getSpellingLoc();
- if (SM.getFilename(Loc).endswith("sys/queue.h")) {
+ StringRef FN = SM.getFilename(Loc);
+ if (FN.endswith("sys/queue.h") || FN.endswith("sys\\queue.h")) {
BR.markInvalid(getTag(), nullptr);
----------------
I'd do changes like this in a separate patch.
================
Comment at: test/CodeGen/debug-prefix-map.c:21
// CHECK-NO-MAIN-FILE-NAME: !DIFile(filename: "/var/empty{{[/\\]}}{{.*}}"
-// CHECK-NO-MAIN-FILE-NAME: !DIFile(filename:
"/var/empty{{[/\\]}}Inputs/stdio.h"
+// CHECK-NO-MAIN-FILE-NAME: !DIFile(filename:
"/var/empty{{/|\\5C}}Inputs{{/|\\5C}}stdio.h"
// CHECK-NO-MAIN-FILE-NAME-NOT: !DIFile(filename:
----------------
That is super unfortunate.
If we want tests to be able to run on windows, I think we might just want to
give clang a flag to always show paths in unix format. That also should be
something we could just make the file manager do (I think whatever the
filemanager stores will be what is visible to the user).
https://reviews.llvm.org/D27810
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits