> On Apr 13, 2017, at 9:50 AM, Reid Kleckner <r...@google.com> wrote: > > 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 —".
Ah, I see, I didn’t think it was correlated. I could have figured it out if I had read the warnings more carefully, but I think a note like the one you suggested would have been clearer. > /Users/buildslave/jenkins/sharedspace/phase1@2/llvm/tools/clang/test/Driver/fsanitize.c:113:27: > error: expected string not found in input > // CHECK-USE-AFTER-SCOPE: -cc1{{.*}}-fsanitize-address-use-after-scope > ^ > <stdin>:1:1: note: scanning from here > clang-5.0: warning: unknown argument ignored in clang-cl: '-target' > [-Wunknown-argument] > ^ > <stdin>:7:89: note: possible intended match here > 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] > > On Thu, Apr 13, 2017 at 1:12 AM, Akira Hatanaka <ahatan...@apple.com > <mailto:ahatan...@apple.com>> wrote: > I’m afraid I have to revert this to turn the bots green again. > >> On Apr 12, 2017, at 10:41 PM, Akira Hatanaka via cfe-commits >> <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: >> >> I think this broke some of the bots. >> >> http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/30152/ >> <http://lab.llvm.org:8080/green/job/clang-stage1-configure-RA_check/30152/> >> >> Could you take a look? >> >>> On Apr 12, 2017, at 3:50 PM, Reid Kleckner via cfe-commits >>> <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: >>> >>> Author: rnk >>> Date: Wed Apr 12 17:50:51 2017 >>> New Revision: 300122 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=300122&view=rev >>> <http://llvm.org/viewvc/llvm-project?rev=300122&view=rev> >>> Log: >>> [clang-cl] Make all sanitizer flags available in clang-cl >>> >>> Summary: >>> Use a tablegen let {} block so that new sanitizer flags are available by >>> default in all driver modes. This should cut down on time wasted with >>> bugs like http://crbug.com/710928 <http://crbug.com/710928>. >>> >>> Reviewers: vitalybuka, hans >>> >>> Subscribers: kcc, llvm-commits >>> >>> Differential Revision: https://reviews.llvm.org/D31988 >>> <https://reviews.llvm.org/D31988> >>> >>> Modified: >>> cfe/trunk/include/clang/Driver/Options.td >>> cfe/trunk/test/Driver/fsanitize.c >>> >>> Modified: cfe/trunk/include/clang/Driver/Options.td >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=300122&r1=300121&r2=300122&view=diff >>> >>> <http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=300122&r1=300121&r2=300122&view=diff> >>> ============================================================================== >>> --- cfe/trunk/include/clang/Driver/Options.td (original) >>> +++ cfe/trunk/include/clang/Driver/Options.td Wed Apr 12 17:50:51 2017 >>> @@ -778,65 +778,71 @@ def fno_signaling_math : Flag<["-"], "fn >>> def fjump_tables : Flag<["-"], "fjump-tables">, Group<f_Group>; >>> def fno_jump_tables : Flag<["-"], "fno-jump-tables">, Group<f_Group>, >>> Flags<[CC1Option]>, >>> HelpText<"Do not use jump tables for lowering switches">; >>> + >>> +// Begin sanitizer flags. These should all be core options exposed in all >>> driver >>> +// modes. >>> +let Flags = [CC1Option, CoreOption] in { >>> + >>> def fsanitize_EQ : CommaJoined<["-"], "fsanitize=">, Group<f_clang_Group>, >>> - Flags<[CC1Option, CoreOption]>, MetaVarName<"<check>">, >>> + MetaVarName<"<check>">, >>> HelpText<"Turn on runtime checks for various forms of >>> undefined " >>> "or suspicious behavior. See user manual for >>> available checks">; >>> def fno_sanitize_EQ : CommaJoined<["-"], "fno-sanitize=">, >>> Group<f_clang_Group>, >>> - Flags<[CoreOption]>; >>> + Flags<[CoreOption, DriverOption]>; >>> def fsanitize_blacklist : Joined<["-"], "fsanitize-blacklist=">, >>> - Group<f_clang_Group>, Flags<[CC1Option, >>> CoreOption]>, >>> + Group<f_clang_Group>, >>> HelpText<"Path to blacklist file for sanitizers">; >>> def fno_sanitize_blacklist : Flag<["-"], "fno-sanitize-blacklist">, >>> Group<f_clang_Group>, >>> HelpText<"Don't use blacklist file for >>> sanitizers">; >>> def fsanitize_coverage >>> : CommaJoined<["-"], "fsanitize-coverage=">, >>> - Group<f_clang_Group>, Flags<[CoreOption]>, >>> + Group<f_clang_Group>, >>> HelpText<"Specify the type of coverage instrumentation for >>> Sanitizers">; >>> def fno_sanitize_coverage >>> : CommaJoined<["-"], "fno-sanitize-coverage=">, >>> - Group<f_clang_Group>, Flags<[CoreOption]>, >>> + Group<f_clang_Group>, Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable specified features of coverage instrumentation for " >>> "Sanitizers">; >>> def fsanitize_memory_track_origins_EQ : Joined<["-"], >>> "fsanitize-memory-track-origins=">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Enable origins tracking >>> in MemorySanitizer">; >>> def fsanitize_memory_track_origins : Flag<["-"], >>> "fsanitize-memory-track-origins">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Enable origins tracking in >>> MemorySanitizer">; >>> def fno_sanitize_memory_track_origins : Flag<["-"], >>> "fno-sanitize-memory-track-origins">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> + Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable origins tracking >>> in MemorySanitizer">; >>> def fsanitize_memory_use_after_dtor : Flag<["-"], >>> "fsanitize-memory-use-after-dtor">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Enable use-after-destroy >>> detection in MemorySanitizer">; >>> def fsanitize_address_field_padding : Joined<["-"], >>> "fsanitize-address-field-padding=">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Level of field padding >>> for AddressSanitizer">; >>> def fsanitize_address_use_after_scope : Flag<["-"], >>> "fsanitize-address-use-after-scope">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Enable use-after-scope >>> detection in AddressSanitizer">; >>> def fno_sanitize_address_use_after_scope : Flag<["-"], >>> "fno-sanitize-address-use-after-scope">, >>> - Group<f_clang_Group>, >>> Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> + Flags<[CoreOption, >>> DriverOption]>, >>> HelpText<"Disable >>> use-after-scope detection in AddressSanitizer">; >>> -def fsanitize_recover : Flag<["-"], "fsanitize-recover">, >>> Group<f_clang_Group>, >>> - Flags<[CoreOption]>; >>> +def fsanitize_recover : Flag<["-"], "fsanitize-recover">, >>> Group<f_clang_Group>; >>> def fno_sanitize_recover : Flag<["-"], "fno-sanitize-recover">, >>> - Group<f_clang_Group>, Flags<[CoreOption]>; >>> + Flags<[CoreOption, DriverOption]>, >>> + Group<f_clang_Group>; >>> def fsanitize_recover_EQ : CommaJoined<["-"], "fsanitize-recover=">, >>> Group<f_clang_Group>, >>> - Flags<[CC1Option, CoreOption]>, >>> HelpText<"Enable recovery for specified >>> sanitizers">; >>> def fno_sanitize_recover_EQ >>> : CommaJoined<["-"], "fno-sanitize-recover=">, >>> - Group<f_clang_Group>, Flags<[CoreOption]>, >>> + Group<f_clang_Group>, >>> + Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable recovery for specified sanitizers">; >>> def fsanitize_trap_EQ : CommaJoined<["-"], "fsanitize-trap=">, >>> Group<f_clang_Group>, >>> - Flags<[CC1Option, CoreOption]>, >>> HelpText<"Enable trapping for specified >>> sanitizers">; >>> def fno_sanitize_trap_EQ : CommaJoined<["-"], "fno-sanitize-trap=">, >>> Group<f_clang_Group>, >>> - Flags<[CoreOption]>, >>> + Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable trapping for specified >>> sanitizers">; >>> def fsanitize_undefined_trap_on_error : Flag<["-"], >>> "fsanitize-undefined-trap-on-error">, >>> Group<f_clang_Group>; >>> @@ -845,39 +851,47 @@ def fno_sanitize_undefined_trap_on_error >>> def fsanitize_link_cxx_runtime : Flag<["-"], "fsanitize-link-c++-runtime">, >>> Group<f_clang_Group>; >>> def fsanitize_cfi_cross_dso : Flag<["-"], "fsanitize-cfi-cross-dso">, >>> - Group<f_clang_Group>, Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Enable control flow integrity (CFI) >>> checks for cross-DSO calls.">; >>> def fno_sanitize_cfi_cross_dso : Flag<["-"], "fno-sanitize-cfi-cross-dso">, >>> - Group<f_clang_Group>, Flags<[CC1Option]>, >>> + Flags<[CoreOption, DriverOption]>, >>> + Group<f_clang_Group>, >>> HelpText<"Disable control flow integrity >>> (CFI) checks for cross-DSO calls.">; >>> def fsanitize_stats : Flag<["-"], "fsanitize-stats">, >>> - Group<f_clang_Group>, Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> HelpText<"Enable sanitizer statistics >>> gathering.">; >>> def fno_sanitize_stats : Flag<["-"], "fno-sanitize-stats">, >>> - Group<f_clang_Group>, Flags<[CC1Option]>, >>> + Group<f_clang_Group>, >>> + Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable sanitizer statistics >>> gathering.">; >>> def fsanitize_thread_memory_access : Flag<["-"], >>> "fsanitize-thread-memory-access">, >>> Group<f_clang_Group>, >>> HelpText<"Enable memory access >>> instrumentation in ThreadSanitizer (default)">; >>> def fno_sanitize_thread_memory_access : Flag<["-"], >>> "fno-sanitize-thread-memory-access">, >>> Group<f_clang_Group>, >>> + Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable memory access >>> instrumentation in ThreadSanitizer">; >>> def fsanitize_thread_func_entry_exit : Flag<["-"], >>> "fsanitize-thread-func-entry-exit">, >>> Group<f_clang_Group>, >>> HelpText<"Enable function entry/exit >>> instrumentation in ThreadSanitizer (default)">; >>> def fno_sanitize_thread_func_entry_exit : Flag<["-"], >>> "fno-sanitize-thread-func-entry-exit">, >>> Group<f_clang_Group>, >>> + Flags<[CoreOption, >>> DriverOption]>, >>> HelpText<"Disable function >>> entry/exit instrumentation in ThreadSanitizer">; >>> def fsanitize_thread_atomics : Flag<["-"], "fsanitize-thread-atomics">, >>> Group<f_clang_Group>, >>> HelpText<"Enable atomic operations >>> instrumentation in ThreadSanitizer (default)">; >>> def fno_sanitize_thread_atomics : Flag<["-"], >>> "fno-sanitize-thread-atomics">, >>> Group<f_clang_Group>, >>> + Flags<[CoreOption, DriverOption]>, >>> HelpText<"Disable atomic operations >>> instrumentation in ThreadSanitizer">; >>> def fsanitize_undefined_strip_path_components_EQ : Joined<["-"], >>> "fsanitize-undefined-strip-path-components=">, >>> - Group<f_clang_Group>, Flags<[CC1Option]>, MetaVarName<"<number>">, >>> + Group<f_clang_Group>, MetaVarName<"<number>">, >>> HelpText<"Strip (or keep only, if negative) a given number of path >>> components " >>> "when emitting check metadata.">; >>> + >>> +} // end -f[no-]sanitize* flags >>> + >>> def funsafe_math_optimizations : Flag<["-"], "funsafe-math-optimizations">, >>> Group<f_Group>; >>> def fno_unsafe_math_optimizations : Flag<["-"], >>> "fno-unsafe-math-optimizations">, >>> >>> Modified: cfe/trunk/test/Driver/fsanitize.c >>> URL: >>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=300122&r1=300121&r2=300122&view=diff >>> >>> <http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=300122&r1=300121&r2=300122&view=diff> >>> ============================================================================== >>> --- cfe/trunk/test/Driver/fsanitize.c (original) >>> +++ cfe/trunk/test/Driver/fsanitize.c Wed Apr 12 17:50:51 2017 >>> @@ -109,12 +109,15 @@ >>> // CHECK-SANE-SANKA: '-fsanitize=efficiency-{{.*}}' not allowed with >>> '-fsanitize=kernel-address' >>> >>> // 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 >>> +// 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 >>> // CHECK-USE-AFTER-SCOPE: -cc1{{.*}}-fsanitize-address-use-after-scope >>> >>> // 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 >>> +// 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 >>> // CHECK-USE-AFTER-SCOPE-OFF-NOT: -cc1{{.*}}address-use-after-scope >>> >>> // 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 >>> +// 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 >>> // CHECK-USE-AFTER-SCOPE-BOTH: -cc1{{.*}}-fsanitize-address-use-after-scope >>> >>> // 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 >>> >>> >>> _______________________________________________ >>> cfe-commits mailing list >>> cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>> <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> <http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits> > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits