<div dir="ltr">Fixed in r300209. Was the -Wslash-u-filename warning not explanatory enough to suggest the solution? Maybe we could add a note like "escape source paths starting with /U by passing them at the end of the command line after --".<br><div><br></div><div><div>/Users/buildslave/jenkins/sharedspace/phase1@2/llvm/tools/clang/test/Driver/fsanitize.c:113:27: error: expected string not found in input</div><div>// CHECK-USE-AFTER-SCOPE: -cc1{{.*}}-fsanitize-address-use-after-scope</div><div>                          ^</div><div><stdin>:1:1: note: scanning from here</div><div>clang-5.0: warning: unknown argument ignored in clang-cl: '-target' [-Wunknown-argument]</div><div>^</div><div><stdin>:7:89: note: possible intended match here</div><div>clang-5.0: warning: '/Users/buildslave/jenkins/sharedspace/phase1@2/llvm/tools/clang/test/Driver/fsanitize.c' treated as the '/U' option [-Wslash-u-filename]</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 13, 2017 at 1:12 AM, Akira Hatanaka <span dir="ltr"><<a href="mailto:ahatanaka@apple.com" target="_blank">ahatanaka@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I’m afraid I have to revert this to turn the bots green again.<div><div class="h5"><div><br><div><blockquote type="cite"><div>On Apr 12, 2017, at 10:41 PM, Akira Hatanaka via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:</div><br class="m_-807769839419756450Apple-interchange-newline"><div><div style="word-wrap:break-word">I think this broke some of the bots.<div><br></div><div><a href="http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/30152/" target="_blank">http://lab.llvm.org:8080/<wbr>green/job/clang-stage1-<wbr>configure-RA_check/30152/</a></div><div><br></div><div>Could you take a look?</div><div> <div><div><blockquote type="cite"><div>On Apr 12, 2017, at 3:50 PM, Reid Kleckner via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:</div><br class="m_-807769839419756450Apple-interchange-newline"><div><div>Author: rnk<br>Date: Wed Apr 12 17:50:51 2017<br>New Revision: 300122<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=300122&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=300122&view=rev</a><br>Log:<br>[clang-cl] Make all sanitizer flags available in clang-cl<br><br>Summary:<br>Use a tablegen let {} block so that new sanitizer flags are available by<br>default in all driver modes. This should cut down on time wasted with<br>bugs like <a href="http://crbug.com/710928" target="_blank">http://crbug.com/710928</a>.<br><br>Reviewers: vitalybuka, hans<br><br>Subscribers: kcc, llvm-commits<br><br>Differential Revision: <a href="https://reviews.llvm.org/D31988" target="_blank">https://reviews.llvm.org/<wbr>D31988</a><br><br>Modified:<br>    cfe/trunk/include/clang/<wbr>Driver/Options.td<br>    cfe/trunk/test/Driver/<wbr>fsanitize.c<br><br>Modified: cfe/trunk/include/clang/<wbr>Driver/Options.td<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=300122&r1=300121&r2=300122&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/include/<wbr>clang/Driver/Options.td?rev=<wbr>300122&r1=300121&r2=300122&<wbr>view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- cfe/trunk/include/clang/<wbr>Driver/Options.td (original)<br>+++ cfe/trunk/include/clang/<wbr>Driver/Options.td Wed Apr 12 17:50:51 2017<br>@@ -778,65 +778,71 @@ def fno_signaling_math : Flag<["-"], "fn<br> def fjump_tables : Flag<["-"], "fjump-tables">, Group<f_Group>;<br> def fno_jump_tables : Flag<["-"], "fno-jump-tables">, Group<f_Group>, Flags<[CC1Option]>,<br>   HelpText<"Do not use jump tables for lowering switches">;<br>+<br>+// Begin sanitizer flags. These should all be core options exposed in all driver<br>+// modes.<br>+let Flags = [CC1Option, CoreOption] in {<br>+<br> def fsanitize_EQ : CommaJoined<["-"], "fsanitize=">, Group<f_clang_Group>,<br>-                   Flags<[<wbr>CC1Option, CoreOption]>, MetaVarName<"<check>">,<br>+                   MetaVarName<<wbr>"<check>">,<br>                    HelpText<"<wbr>Turn on runtime checks for various forms of undefined "<br>                             "<wbr>or suspicious behavior. See user manual for available checks">;<br> def fno_sanitize_EQ : CommaJoined<["-"], "fno-sanitize=">, Group<f_clang_Group>,<br>-                      Flags<[<wbr>CoreOption]>;<br>+                      Flags<[<wbr>CoreOption, DriverOption]>;<br> def fsanitize_blacklist : Joined<["-"], "fsanitize-blacklist=">,<br>-                          <wbr>Group<f_clang_Group>, Flags<[CC1Option, CoreOption]>,<br>+                          <wbr>Group<f_clang_Group>,<br>                           <wbr>HelpText<"Path to blacklist file for sanitizers">;<br> def fno_sanitize_blacklist : Flag<["-"], "fno-sanitize-blacklist">,<br>                              <wbr>Group<f_clang_Group>,<br>                              <wbr>HelpText<"Don't use blacklist file for sanitizers">;<br> def fsanitize_coverage<br>     : CommaJoined<["-"], "fsanitize-coverage=">,<br>-      Group<f_clang_Group>, Flags<[CoreOption]>,<br>+      Group<f_clang_Group>,<br>       HelpText<"Specify the type of coverage instrumentation for Sanitizers">;<br> def fno_sanitize_coverage<br>     : CommaJoined<["-"], "fno-sanitize-coverage=">,<br>-      Group<f_clang_Group>, Flags<[CoreOption]>,<br>+      Group<f_clang_Group>, Flags<[CoreOption, DriverOption]>,<br>       HelpText<"Disable specified features of coverage instrumentation for "<br>                "Sanitizers">;<br> def fsanitize_memory_track_<wbr>origins_EQ : Joined<["-"], "fsanitize-memory-track-<wbr>origins=">,<br>-                               <wbr>         Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>         Group<f_clang_Group>,<br>                               <wbr>          HelpText<"Enable origins tracking in MemorySanitizer">;<br> def fsanitize_memory_track_origins : Flag<["-"], "fsanitize-memory-track-<wbr>origins">,<br>-                               <wbr>      Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>      Group<f_clang_Group>,<br>                               <wbr>       HelpText<"Enable origins tracking in MemorySanitizer">;<br> def fno_sanitize_memory_track_<wbr>origins : Flag<["-"], "fno-sanitize-memory-track-<wbr>origins">,<br>-                               <wbr>         Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>         Group<f_clang_Group>,<br>+                               <wbr>         Flags<[CoreOption, DriverOption]>,<br>                               <wbr>          HelpText<"Disable origins tracking in MemorySanitizer">;<br> def fsanitize_memory_use_after_<wbr>dtor : Flag<["-"], "fsanitize-memory-use-after-<wbr>dtor">,<br>-                               <wbr>      Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>      Group<f_clang_Group>,<br>                               <wbr>       HelpText<"Enable use-after-destroy detection in MemorySanitizer">;<br> def fsanitize_address_field_<wbr>padding : Joined<["-"], "fsanitize-address-field-<wbr>padding=">,<br>-                               <wbr>         Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>         Group<f_clang_Group>,<br>                               <wbr>          HelpText<"Level of field padding for AddressSanitizer">;<br> def fsanitize_address_use_after_<wbr>scope : Flag<["-"], "fsanitize-address-use-after-<wbr>scope">,<br>-                               <wbr>         Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>         Group<f_clang_Group>,<br>                               <wbr>          HelpText<"Enable use-after-scope detection in AddressSanitizer">;<br> def fno_sanitize_address_use_<wbr>after_scope : Flag<["-"], "fno-sanitize-address-use-<wbr>after-scope">,<br>-                               <wbr>            Group<f_clang_<wbr>Group>, Flags<[CC1Option]>,<br>+                               <wbr>            Group<f_clang_<wbr>Group>,<br>+                               <wbr>            Flags<[CoreOption, DriverOption]>,<br>                               <wbr>             HelpText<"Disable use-after-scope detection in AddressSanitizer">;<br>-def fsanitize_recover : Flag<["-"], "fsanitize-recover">, Group<f_clang_Group>,<br>-                        Flags<[<wbr>CoreOption]>;<br>+def fsanitize_recover : Flag<["-"], "fsanitize-recover">, Group<f_clang_Group>;<br> def fno_sanitize_recover : Flag<["-"], "fno-sanitize-recover">,<br>-                           <wbr>Group<f_clang_Group>, Flags<[CoreOption]>;<br>+                           <wbr>Flags<[CoreOption, DriverOption]>,<br>+                           <wbr>Group<f_clang_Group>;<br> def fsanitize_recover_EQ : CommaJoined<["-"], "fsanitize-recover=">,<br>                            <wbr>Group<f_clang_Group>,<br>-                           <wbr>Flags<[CC1Option, CoreOption]>,<br>                            <wbr>HelpText<"Enable recovery for specified sanitizers">;<br> def fno_sanitize_recover_EQ<br>     : CommaJoined<["-"], "fno-sanitize-recover=">,<br>-      Group<f_clang_Group>, Flags<[CoreOption]>,<br>+      Group<f_clang_Group>,<br>+      Flags<[CoreOption, DriverOption]>,<br>       HelpText<"Disable recovery for specified sanitizers">;<br> def fsanitize_trap_EQ : CommaJoined<["-"], "fsanitize-trap=">, Group<f_clang_Group>,<br>-                        Flags<[<wbr>CC1Option, CoreOption]>,<br>                         <wbr>HelpText<"Enable trapping for specified sanitizers">;<br> def fno_sanitize_trap_EQ : CommaJoined<["-"], "fno-sanitize-trap=">, Group<f_clang_Group>,<br>-                           <wbr>Flags<[CoreOption]>,<br>+                           <wbr>Flags<[CoreOption, DriverOption]>,<br>                            <wbr>HelpText<"Disable trapping for specified sanitizers">;<br> def fsanitize_undefined_trap_on_<wbr>error : Flag<["-"], "fsanitize-undefined-trap-on-<wbr>error">,<br>                               <wbr>          Group<f_clang_Group><wbr>;<br>@@ -845,39 +851,47 @@ def fno_sanitize_undefined_trap_<wbr>on_error<br> def fsanitize_link_cxx_runtime : Flag<["-"], "fsanitize-link-c++-runtime">,<br>                               <wbr>   Group<f_clang_Group>;<br> def fsanitize_cfi_cross_dso : Flag<["-"], "fsanitize-cfi-cross-dso">,<br>-                              <wbr>Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                              <wbr>Group<f_clang_Group>,<br>                               <wbr>HelpText<"Enable control flow integrity (CFI) checks for cross-DSO calls.">;<br> def fno_sanitize_cfi_cross_dso : Flag<["-"], "fno-sanitize-cfi-cross-dso">,<br>-                               <wbr>  Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>  Flags<[CoreOption, DriverOption]>,<br>+                               <wbr>  Group<f_clang_Group>,<br>                               <wbr>   HelpText<"Disable control flow integrity (CFI) checks for cross-DSO calls.">;<br> def fsanitize_stats : Flag<["-"], "fsanitize-stats">,<br>-                              <wbr>Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                              <wbr>Group<f_clang_Group>,<br>                               <wbr>HelpText<"Enable sanitizer statistics gathering.">;<br> def fno_sanitize_stats : Flag<["-"], "fno-sanitize-stats">,<br>-                               <wbr>  Group<f_clang_Group>, Flags<[CC1Option]>,<br>+                               <wbr>  Group<f_clang_Group>,<br>+                               <wbr>  Flags<[CoreOption, DriverOption]>,<br>                               <wbr>   HelpText<"Disable sanitizer statistics gathering.">;<br> def fsanitize_thread_memory_access : Flag<["-"], "fsanitize-thread-memory-<wbr>access">,<br>                               <wbr>       Group<f_clang_Group>,<br>                               <wbr>       HelpText<"Enable memory access instrumentation in ThreadSanitizer (default)">;<br> def fno_sanitize_thread_memory_<wbr>access : Flag<["-"], "fno-sanitize-thread-memory-<wbr>access">,<br>                               <wbr>          Group<f_clang_Group><wbr>,<br>+                               <wbr>         Flags<[CoreOption, DriverOption]>,<br>                               <wbr>          HelpText<"Disable memory access instrumentation in ThreadSanitizer">;<br> def fsanitize_thread_func_entry_<wbr>exit : Flag<["-"], "fsanitize-thread-func-entry-<wbr>exit">,<br>                               <wbr>         Group<f_clang_Group>,<br>                               <wbr>         HelpText<"Enable function entry/exit instrumentation in ThreadSanitizer (default)">;<br> def fno_sanitize_thread_func_<wbr>entry_exit : Flag<["-"], "fno-sanitize-thread-func-<wbr>entry-exit">,<br>                               <wbr>            Group<f_clang_<wbr>Group>,<br>+                               <wbr>           Flags<[CoreOption, DriverOption]>,<br>                               <wbr>            HelpText<"Disable function entry/exit instrumentation in ThreadSanitizer">;<br> def fsanitize_thread_atomics : Flag<["-"], "fsanitize-thread-atomics">,<br>                               <wbr> Group<f_clang_Group>,<br>                               <wbr> HelpText<"Enable atomic operations instrumentation in ThreadSanitizer (default)">;<br> def fno_sanitize_thread_atomics : Flag<["-"], "fno-sanitize-thread-atomics"><wbr>,<br>                               <wbr>    Group<f_clang_Group>,<br>+                               <wbr>   Flags<[CoreOption, DriverOption]>,<br>                               <wbr>    HelpText<"Disable atomic operations instrumentation in ThreadSanitizer">;<br> def fsanitize_undefined_strip_<wbr>path_components_EQ : Joined<["-"], "fsanitize-undefined-strip-<wbr>path-components=">,<br>-  Group<f_clang_Group>, Flags<[CC1Option]>, MetaVarName<"<number>">,<br>+  Group<f_clang_Group>, MetaVarName<"<number>">,<br>   HelpText<"Strip (or keep only, if negative) a given number of path components "<br>            "when emitting check metadata.">;<br>+<br>+} // end -f[no-]sanitize* flags<br>+<br> def funsafe_math_optimizations : Flag<["-"], "funsafe-math-optimizations">,<br>   Group<f_Group>;<br> def fno_unsafe_math_optimizations : Flag<["-"], "fno-unsafe-math-<wbr>optimizations">,<br><br>Modified: cfe/trunk/test/Driver/<wbr>fsanitize.c<br>URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=300122&r1=300121&r2=300122&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/cfe/trunk/test/Driver/<wbr>fsanitize.c?rev=300122&r1=<wbr>300121&r2=300122&view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- cfe/trunk/test/Driver/<wbr>fsanitize.c (original)<br>+++ cfe/trunk/test/Driver/<wbr>fsanitize.c Wed Apr 12 17:50:51 2017<br>@@ -109,12 +109,15 @@<br> // CHECK-SANE-SANKA: '-fsanitize=efficiency-{{.*}}' not allowed with '-fsanitize=kernel-address'<br><br> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-address-use-after-<wbr>scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE<br>+// RUN: %clang_cl -target x86_64-windows -fsanitize=address -fsanitize-address-use-after-<wbr>scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE<br> // CHECK-USE-AFTER-SCOPE: -cc1{{.*}}-fsanitize-address-<wbr>use-after-scope<br><br> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fno-sanitize-address-use-<wbr>after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE-OFF<br>+// RUN: %clang_cl -target x86_64-windows -fsanitize=address -fno-sanitize-address-use-<wbr>after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE-OFF<br> // CHECK-USE-AFTER-SCOPE-OFF-NOT: -cc1{{.*}}address-use-after-<wbr>scope<br><br> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fno-sanitize-address-use-<wbr>after-scope -fsanitize-address-use-after-<wbr>scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE-BOTH<br>+// RUN: %clang_cl -target x86_64-windows -fsanitize=address -fno-sanitize-address-use-<wbr>after-scope -fsanitize-address-use-after-<wbr>scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE-BOTH<br> // CHECK-USE-AFTER-SCOPE-BOTH: -cc1{{.*}}-fsanitize-address-<wbr>use-after-scope<br><br> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-address-use-after-<wbr>scope -fno-sanitize-address-use-<wbr>after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-<wbr>AFTER-SCOPE-BOTH-OFF<br><br><br>______________________________<wbr>_________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br></div></div></blockquote></div><br></div></div></div>______________________________<wbr>_________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br></div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>