<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I think this broke some of the bots.<div class=""><br class=""></div><div class=""><a href="http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/30152/" class="">http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/30152/</a></div><div class=""><br class=""></div><div class="">Could you take a look?</div><div class=""> <div class=""><div><blockquote type="cite" class=""><div class="">On Apr 12, 2017, at 3:50 PM, Reid Kleckner via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Author: rnk<br class="">Date: Wed Apr 12 17:50:51 2017<br class="">New Revision: 300122<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=300122&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=300122&view=rev</a><br class="">Log:<br class="">[clang-cl] Make all sanitizer flags available in clang-cl<br class=""><br class="">Summary:<br class="">Use a tablegen let {} block so that new sanitizer flags are available by<br class="">default in all driver modes. This should cut down on time wasted with<br class="">bugs like <a href="http://crbug.com/710928" class="">http://crbug.com/710928</a>.<br class=""><br class="">Reviewers: vitalybuka, hans<br class=""><br class="">Subscribers: kcc, llvm-commits<br class=""><br class="">Differential Revision: <a href="https://reviews.llvm.org/D31988" class="">https://reviews.llvm.org/D31988</a><br class=""><br class="">Modified:<br class="">    cfe/trunk/include/clang/Driver/Options.td<br class="">    cfe/trunk/test/Driver/fsanitize.c<br class=""><br class="">Modified: cfe/trunk/include/clang/Driver/Options.td<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=300122&r1=300121&r2=300122&view=diff" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=300122&r1=300121&r2=300122&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/include/clang/Driver/Options.td (original)<br class="">+++ cfe/trunk/include/clang/Driver/Options.td Wed Apr 12 17:50:51 2017<br class="">@@ -778,65 +778,71 @@ def fno_signaling_math : Flag<["-"], "fn<br class=""> def fjump_tables : Flag<["-"], "fjump-tables">, Group<f_Group>;<br class=""> def fno_jump_tables : Flag<["-"], "fno-jump-tables">, Group<f_Group>, Flags<[CC1Option]>,<br class="">   HelpText<"Do not use jump tables for lowering switches">;<br class="">+<br class="">+// Begin sanitizer flags. These should all be core options exposed in all driver<br class="">+// modes.<br class="">+let Flags = [CC1Option, CoreOption] in {<br class="">+<br class=""> def fsanitize_EQ : CommaJoined<["-"], "fsanitize=">, Group<f_clang_Group>,<br class="">-                   Flags<[CC1Option, CoreOption]>, MetaVarName<"<check>">,<br class="">+                   MetaVarName<"<check>">,<br class="">                    HelpText<"Turn on runtime checks for various forms of undefined "<br class="">                             "or suspicious behavior. See user manual for available checks">;<br class=""> def fno_sanitize_EQ : CommaJoined<["-"], "fno-sanitize=">, Group<f_clang_Group>,<br class="">-                      Flags<[CoreOption]>;<br class="">+                      Flags<[CoreOption, DriverOption]>;<br class=""> def fsanitize_blacklist : Joined<["-"], "fsanitize-blacklist=">,<br class="">-                          Group<f_clang_Group>, Flags<[CC1Option, CoreOption]>,<br class="">+                          Group<f_clang_Group>,<br class="">                           HelpText<"Path to blacklist file for sanitizers">;<br class=""> def fno_sanitize_blacklist : Flag<["-"], "fno-sanitize-blacklist">,<br class="">                              Group<f_clang_Group>,<br class="">                              HelpText<"Don't use blacklist file for sanitizers">;<br class=""> def fsanitize_coverage<br class="">     : CommaJoined<["-"], "fsanitize-coverage=">,<br class="">-      Group<f_clang_Group>, Flags<[CoreOption]>,<br class="">+      Group<f_clang_Group>,<br class="">       HelpText<"Specify the type of coverage instrumentation for Sanitizers">;<br class=""> def fno_sanitize_coverage<br class="">     : CommaJoined<["-"], "fno-sanitize-coverage=">,<br class="">-      Group<f_clang_Group>, Flags<[CoreOption]>,<br class="">+      Group<f_clang_Group>, Flags<[CoreOption, DriverOption]>,<br class="">       HelpText<"Disable specified features of coverage instrumentation for "<br class="">                "Sanitizers">;<br class=""> def fsanitize_memory_track_origins_EQ : Joined<["-"], "fsanitize-memory-track-origins=">,<br class="">-                                        Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                        Group<f_clang_Group>,<br class="">                                         HelpText<"Enable origins tracking in MemorySanitizer">;<br class=""> def fsanitize_memory_track_origins : Flag<["-"], "fsanitize-memory-track-origins">,<br class="">-                                     Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                     Group<f_clang_Group>,<br class="">                                      HelpText<"Enable origins tracking in MemorySanitizer">;<br class=""> def fno_sanitize_memory_track_origins : Flag<["-"], "fno-sanitize-memory-track-origins">,<br class="">-                                        Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                        Group<f_clang_Group>,<br class="">+                                        Flags<[CoreOption, DriverOption]>,<br class="">                                         HelpText<"Disable origins tracking in MemorySanitizer">;<br class=""> def fsanitize_memory_use_after_dtor : Flag<["-"], "fsanitize-memory-use-after-dtor">,<br class="">-                                     Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                     Group<f_clang_Group>,<br class="">                                      HelpText<"Enable use-after-destroy detection in MemorySanitizer">;<br class=""> def fsanitize_address_field_padding : Joined<["-"], "fsanitize-address-field-padding=">,<br class="">-                                        Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                        Group<f_clang_Group>,<br class="">                                         HelpText<"Level of field padding for AddressSanitizer">;<br class=""> def fsanitize_address_use_after_scope : Flag<["-"], "fsanitize-address-use-after-scope">,<br class="">-                                        Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                        Group<f_clang_Group>,<br class="">                                         HelpText<"Enable use-after-scope detection in AddressSanitizer">;<br class=""> def fno_sanitize_address_use_after_scope : Flag<["-"], "fno-sanitize-address-use-after-scope">,<br class="">-                                           Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                           Group<f_clang_Group>,<br class="">+                                           Flags<[CoreOption, DriverOption]>,<br class="">                                            HelpText<"Disable use-after-scope detection in AddressSanitizer">;<br class="">-def fsanitize_recover : Flag<["-"], "fsanitize-recover">, Group<f_clang_Group>,<br class="">-                        Flags<[CoreOption]>;<br class="">+def fsanitize_recover : Flag<["-"], "fsanitize-recover">, Group<f_clang_Group>;<br class=""> def fno_sanitize_recover : Flag<["-"], "fno-sanitize-recover">,<br class="">-                           Group<f_clang_Group>, Flags<[CoreOption]>;<br class="">+                           Flags<[CoreOption, DriverOption]>,<br class="">+                           Group<f_clang_Group>;<br class=""> def fsanitize_recover_EQ : CommaJoined<["-"], "fsanitize-recover=">,<br class="">                            Group<f_clang_Group>,<br class="">-                           Flags<[CC1Option, CoreOption]>,<br class="">                            HelpText<"Enable recovery for specified sanitizers">;<br class=""> def fno_sanitize_recover_EQ<br class="">     : CommaJoined<["-"], "fno-sanitize-recover=">,<br class="">-      Group<f_clang_Group>, Flags<[CoreOption]>,<br class="">+      Group<f_clang_Group>,<br class="">+      Flags<[CoreOption, DriverOption]>,<br class="">       HelpText<"Disable recovery for specified sanitizers">;<br class=""> def fsanitize_trap_EQ : CommaJoined<["-"], "fsanitize-trap=">, Group<f_clang_Group>,<br class="">-                        Flags<[CC1Option, CoreOption]>,<br class="">                         HelpText<"Enable trapping for specified sanitizers">;<br class=""> def fno_sanitize_trap_EQ : CommaJoined<["-"], "fno-sanitize-trap=">, Group<f_clang_Group>,<br class="">-                           Flags<[CoreOption]>,<br class="">+                           Flags<[CoreOption, DriverOption]>,<br class="">                            HelpText<"Disable trapping for specified sanitizers">;<br class=""> def fsanitize_undefined_trap_on_error : Flag<["-"], "fsanitize-undefined-trap-on-error">,<br class="">                                         Group<f_clang_Group>;<br class="">@@ -845,39 +851,47 @@ def fno_sanitize_undefined_trap_on_error<br class=""> def fsanitize_link_cxx_runtime : Flag<["-"], "fsanitize-link-c++-runtime">,<br class="">                                  Group<f_clang_Group>;<br class=""> def fsanitize_cfi_cross_dso : Flag<["-"], "fsanitize-cfi-cross-dso">,<br class="">-                              Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                              Group<f_clang_Group>,<br class="">                               HelpText<"Enable control flow integrity (CFI) checks for cross-DSO calls.">;<br class=""> def fno_sanitize_cfi_cross_dso : Flag<["-"], "fno-sanitize-cfi-cross-dso">,<br class="">-                                 Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                 Flags<[CoreOption, DriverOption]>,<br class="">+                                 Group<f_clang_Group>,<br class="">                                  HelpText<"Disable control flow integrity (CFI) checks for cross-DSO calls.">;<br class=""> def fsanitize_stats : Flag<["-"], "fsanitize-stats">,<br class="">-                              Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                              Group<f_clang_Group>,<br class="">                               HelpText<"Enable sanitizer statistics gathering.">;<br class=""> def fno_sanitize_stats : Flag<["-"], "fno-sanitize-stats">,<br class="">-                                 Group<f_clang_Group>, Flags<[CC1Option]>,<br class="">+                                 Group<f_clang_Group>,<br class="">+                                 Flags<[CoreOption, DriverOption]>,<br class="">                                  HelpText<"Disable sanitizer statistics gathering.">;<br class=""> def fsanitize_thread_memory_access : Flag<["-"], "fsanitize-thread-memory-access">,<br class="">                                      Group<f_clang_Group>,<br class="">                                      HelpText<"Enable memory access instrumentation in ThreadSanitizer (default)">;<br class=""> def fno_sanitize_thread_memory_access : Flag<["-"], "fno-sanitize-thread-memory-access">,<br class="">                                         Group<f_clang_Group>,<br class="">+                                        Flags<[CoreOption, DriverOption]>,<br class="">                                         HelpText<"Disable memory access instrumentation in ThreadSanitizer">;<br class=""> def fsanitize_thread_func_entry_exit : Flag<["-"], "fsanitize-thread-func-entry-exit">,<br class="">                                        Group<f_clang_Group>,<br class="">                                        HelpText<"Enable function entry/exit instrumentation in ThreadSanitizer (default)">;<br class=""> def fno_sanitize_thread_func_entry_exit : Flag<["-"], "fno-sanitize-thread-func-entry-exit">,<br class="">                                           Group<f_clang_Group>,<br class="">+                                          Flags<[CoreOption, DriverOption]>,<br class="">                                           HelpText<"Disable function entry/exit instrumentation in ThreadSanitizer">;<br class=""> def fsanitize_thread_atomics : Flag<["-"], "fsanitize-thread-atomics">,<br class="">                                Group<f_clang_Group>,<br class="">                                HelpText<"Enable atomic operations instrumentation in ThreadSanitizer (default)">;<br class=""> def fno_sanitize_thread_atomics : Flag<["-"], "fno-sanitize-thread-atomics">,<br class="">                                   Group<f_clang_Group>,<br class="">+                                  Flags<[CoreOption, DriverOption]>,<br class="">                                   HelpText<"Disable atomic operations instrumentation in ThreadSanitizer">;<br class=""> def fsanitize_undefined_strip_path_components_EQ : Joined<["-"], "fsanitize-undefined-strip-path-components=">,<br class="">-  Group<f_clang_Group>, Flags<[CC1Option]>, MetaVarName<"<number>">,<br class="">+  Group<f_clang_Group>, MetaVarName<"<number>">,<br class="">   HelpText<"Strip (or keep only, if negative) a given number of path components "<br class="">            "when emitting check metadata.">;<br class="">+<br class="">+} // end -f[no-]sanitize* flags<br class="">+<br class=""> def funsafe_math_optimizations : Flag<["-"], "funsafe-math-optimizations">,<br class="">   Group<f_Group>;<br class=""> def fno_unsafe_math_optimizations : Flag<["-"], "fno-unsafe-math-optimizations">,<br class=""><br class="">Modified: cfe/trunk/test/Driver/fsanitize.c<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=300122&r1=300121&r2=300122&view=diff" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=300122&r1=300121&r2=300122&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/test/Driver/fsanitize.c (original)<br class="">+++ cfe/trunk/test/Driver/fsanitize.c Wed Apr 12 17:50:51 2017<br class="">@@ -109,12 +109,15 @@<br class=""> // CHECK-SANE-SANKA: '-fsanitize=efficiency-{{.*}}' not allowed with '-fsanitize=kernel-address'<br class=""><br class=""> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE<br class="">+// RUN: %clang_cl -target x86_64-windows -fsanitize=address -fsanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE<br class=""> // CHECK-USE-AFTER-SCOPE: -cc1{{.*}}-fsanitize-address-use-after-scope<br class=""><br class=""> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fno-sanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE-OFF<br class="">+// RUN: %clang_cl -target x86_64-windows -fsanitize=address -fno-sanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE-OFF<br class=""> // CHECK-USE-AFTER-SCOPE-OFF-NOT: -cc1{{.*}}address-use-after-scope<br class=""><br class=""> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fno-sanitize-address-use-after-scope -fsanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE-BOTH<br class="">+// RUN: %clang_cl -target x86_64-windows -fsanitize=address -fno-sanitize-address-use-after-scope -fsanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE-BOTH<br class=""> // CHECK-USE-AFTER-SCOPE-BOTH: -cc1{{.*}}-fsanitize-address-use-after-scope<br class=""><br class=""> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-address-use-after-scope -fno-sanitize-address-use-after-scope %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-USE-AFTER-SCOPE-BOTH-OFF<br class=""><br class=""><br class="">_______________________________________________<br class="">cfe-commits mailing list<br class=""><a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits<br class=""></div></div></blockquote></div><br class=""></div></div></body></html>