mstorsjo added inline comments.
================ Comment at: clang/test/Driver/mingw-sysroot.cpp:25-38 // RUN: env "PATH=%T/testroot-gcc/bin:%PATH%" %clang -target x86_64-w64-mingw32 -rtlib=platform -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_GCC %s // CHECK_TESTROOT_GCC: "-internal-isystem" "[[BASE:[^"]+]]/testroot-gcc{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}10.2-posix{{/|\\\\}}include{{/|\\\\}}c++" // CHECK_TESTROOT_GCC-SAME: {{^}} "-internal-isystem" "[[BASE]]/testroot-gcc{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}10.2-posix{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}x86_64-w64-mingw32" // CHECK_TESTROOT_GCC-SAME: {{^}} "-internal-isystem" "[[BASE]]/testroot-gcc{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}10.2-posix{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}backward" // CHECK_TESTROOT_GCC: "-internal-isystem" "[[BASE]]/testroot-gcc{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}10.2-posix{{/|\\\\}}include{{/|\\\\}}g++-v10.2-posix" // CHECK_TESTROOT_GCC: "-internal-isystem" "[[BASE]]/testroot-gcc{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}10.2-posix{{/|\\\\}}include{{/|\\\\}}g++-v10.2" // CHECK_TESTROOT_GCC: "-internal-isystem" "[[BASE]]/testroot-gcc{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}10.2-posix{{/|\\\\}}include{{/|\\\\}}g++-v10" ---------------- alvinhochun wrote: > mstorsjo wrote: > > alvinhochun wrote: > > > I think this only verifies that the include path is not present after the > > > last `CHECK_TESTROOT_GCC` match. The [[ > > > https://llvm.org/docs/CommandGuide/FileCheck.html#cmdoption-filecheck-implicit-check-not > > > | --implicit-check-not ]] option should be used to check that the > > > pattern is not present anywhere in the output. > > Right - that's true (although this is the spot where the entry did appear > > before - I checked that the test did fail before applying the functional > > change). > > > > I tried adding `--implicit-check-not` here, but the quoting/escaping of the > > regexes seems tricky - even getting it to recognize the literal quotes > > surrounding the string. > > > > I tried with > > `--implicit-check-not="\"{{.*}}/testroot-gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}include\""`, > > but that's not working (i.e. it's not detecting anything even when I > > remove the functional change of the patch). With a trivial reduction of it, > > into `--implicit-check-not="testroot-gcc/x86_64-w64-mingw32/include"`, it's > > detecting things as expected (but that quote gets handled by the shell, so > > this would match any substring, such as `.../include/subdir` too. But even > > `--implicit-check-not="testroot-gcc/x86_64-w64-mingw32/include\""` does not > > match correctly. > > > > The documentation says that the `--implicit-check-not` option does take a > > pattern, but it doesn't really say what's allowed in that pattern - > > apparently not the full syntax used in normal `CHECK` lines at least... > Maybe it's a problem with escaping those backslashes? I think the command > line is interpreted by lit which has its own escaping rules. Ah, sorry for the noise, I just messed up with a typo - I got it working now. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141206/new/ https://reviews.llvm.org/D141206 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits