On Wed, May 23, 2012 at 5:27 PM, Manuel Klimek <[email protected]> wrote:
> On Wed, May 23, 2012 at 1:58 PM, NAKAMURA Takumi <[email protected]>wrote: > >> 2012/5/23 Michael Spencer <[email protected]>: >> > On Tue, May 22, 2012 at 5:50 PM, NAKAMURA Takumi <[email protected]> >> wrote: >> >> They could pass also on msvc if they were -fms-compatibility tolerant. >> >> >> >> Manuel, I would be happier if you could tweak tests with -target >> i686-win32. >> >> >> >> --- >> >> clang/lib/Tooling/CompilationDatabase.cpp | 8 ++++++-- >> >> clang/lib/Tooling/Tooling.cpp | 8 ++++++-- >> >> clang/test/Tooling/clang-check-builtin-headers.cpp | 2 +- >> >> clang/test/Tooling/clang-check-chdir.cpp | 2 +- >> >> clang/test/Tooling/clang-check-pwd.cpp | 2 +- >> >> clang/test/Tooling/clang-check.cpp | 2 +- >> >> llvm/lib/Support/PathV2.cpp | 3 +++ >> >> 7 files changed, 19 insertions(+), 8 deletions(-) >> > >> > + // FIXME: Does Win32 accept '.\\'? >> > >> > Yes it does. Well, cmd.exe does. >> >> I would like to say here, "Could Win32's '.\\' be accepted here?" >> I have to add later. I think it would be critical issue. >> >> > diff --git a/clang/test/Tooling/clang-check-builtin-headers.cpp >> > b/clang/test/Tooling/clang-check-builtin-headers.cpp >> > index 4324dec..b640d05 100644 >> > --- a/clang/test/Tooling/clang-check-builtin-headers.cpp >> > +++ b/clang/test/Tooling/clang-check-builtin-headers.cpp >> > @@ -1,7 +1,7 @@ >> > // RUN: rm -rf %t >> > // RUN: mkdir %t >> > // Add a path that doesn't exist as argv[0] for the compile command >> line: >> > -// RUN: echo '[{"directory":".","command":"/random/tool -c >> > %t/test.cpp","file":"%t/test.cpp"}]' > %t/compile_commands.json >> > +// RUN: echo '[{"directory":".","command":"/random/tool -c >> > %t/test.cpp","file":"%t/test.cpp"}]' | sed -e 's/\\/\//g' > >> > %t/compile_commands.json >> > // RUN: cp "%s" "%t/test.cpp" >> > // RUN: clang-check "%t" "%t/test.cpp" 2>&1|FileCheck %s >> > // FIXME: Make the above easier. >> > diff --git a/clang/test/Tooling/clang-check-chdir.cpp >> > b/clang/test/Tooling/clang-check-chdir.cpp >> > index 5d02c95..7c465f3 100644 >> > --- a/clang/test/Tooling/clang-check-chdir.cpp >> > +++ b/clang/test/Tooling/clang-check-chdir.cpp >> > @@ -2,7 +2,7 @@ >> > // compilation database. >> > // RUN: rm -rf %t >> > // RUN: mkdir %t >> > -// RUN: echo "[{\"directory\":\"%t\",\"command\":\"clang -c test.cpp >> > -I.\",\"file\":\"%t/test.cpp\"}]" > %t/compile_commands.json >> > +// RUN: echo "[{\"directory\":\"%t\",\"command\":\"clang -c test.cpp >> > -I.\",\"file\":\"%t/test.cpp\"}]" | sed -e 's/\\/\//g' > >> > %t/compile_commands.json >> > // RUN: cp "%s" "%t/test.cpp" >> > // RUN: touch "%t/clang-check-test.h" >> > // RUN: clang-check "%t" "%t/test.cpp" 2>&1|FileCheck %s >> > diff --git a/clang/test/Tooling/clang-check-pwd.cpp >> > b/clang/test/Tooling/clang-check-pwd.cpp >> > index 96417df..40336cb 100644 >> > --- a/clang/test/Tooling/clang-check-pwd.cpp >> > +++ b/clang/test/Tooling/clang-check-pwd.cpp >> > @@ -1,6 +1,6 @@ >> > // RUN: rm -rf %t >> > // RUN: mkdir %t >> > -// RUN: echo "[{\"directory\":\".\",\"command\":\"clang++ -c >> > %t/test.cpp\",\"file\":\"%t/test.cpp\"}]" > %t/compile_commands.json >> > +// RUN: echo "[{\"directory\":\".\",\"command\":\"clang++ -c >> > %t/test.cpp\",\"file\":\"%t/test.cpp\"}]" | sed -e 's/\\/\\\\/g' > >> > %t/compile_commands.json >> > // RUN: cp "%s" "%t/test.cpp" >> > // RUN: PWD="%t" clang-check "%t" "test.cpp" 2>&1|FileCheck %s >> > // FIXME: Make the above easier. >> > diff --git a/clang/test/Tooling/clang-check.cpp >> > b/clang/test/Tooling/clang-check.cpp >> > index d197078..d37d14d 100644 >> > --- a/clang/test/Tooling/clang-check.cpp >> > +++ b/clang/test/Tooling/clang-check.cpp >> > @@ -1,6 +1,6 @@ >> > // RUN: rm -rf %t >> > // RUN: mkdir %t >> > -// RUN: echo '[{"directory":".","command":"clang++ -c >> > %t/test.cpp","file":"%t/test.cpp"}]' > %t/compile_commands.json >> > +// RUN: echo '[{"directory":".","command":"clang++ -c >> > %t/test.cpp","file":"%t/test.cpp"}]' | sed -e 's/\\/\//g' > >> > %t/compile_commands.json >> > // RUN: cp "%s" "%t/test.cpp" >> > // RUN: clang-check "%t" "%t/test.cpp" 2>&1|FileCheck %s >> > // FIXME: Make the above easier. >> > >> > For all these tests can we please not use sed? I'd like to get rid of >> > all dependencies on these tools so Windows can test without GNUWin32. >> >> It would be happier if we would get rid of external tools. >> Then, shall we enhance Lit to expand %X with modifier to be escaped for >> JSON? >> >> Not only sed(1), I can see but also echo(1), cat(1) and cp(1) :p >> Would you like to prune them anyways? > > > I'm still not sure what our strategy for path handling on windows is... > There are multiple strategies I've seen work. Simple strategies are: > 1. accept any path format, convert all paths to an internal representation > when they enter the application, output according to platform; this might > be combined with having a real Path abstraction that programmers can use > instead of having strings for paths > Note: Windows accept paths using `/`, it just happens to default to \ for printing them for some reasons. Therefore if this output issue is Windows specific, then we could just accept both styles and always output with `/` as a path separator. > 2. accept only platform specific path format and use paths verbatim; > double-special case path handling everywhere > > Can somebody enlighten me what clang's strategy is? > > Cheers, > /Manuel > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
