<div dir="ltr">Good idea, done in r204438.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Mar 20, 2014 at 7:59 PM, Rafael Avila de Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This should probably go to the release notes.<br>
<br>
Sent from my iPhone<br>
<div class="HOEnZb"><div class="h5"><br>
> On Mar 20, 2014, at 3:48, Alexey Samsonov <<a href="mailto:samsonov@google.com">samsonov@google.com</a>> wrote:<br>
><br>
> Author: samsonov<br>
> Date: Thu Mar 20 05:48:29 2014<br>
> New Revision: 204330<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=204330&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=204330&view=rev</a><br>
> Log:<br>
> Kill -faddress-sanitizer, -fthread-sanitizer and -fcatch-undefined-behavior flags.<br>
><br>
> These flags are deprecated since at least Clang 3.3. Users should instead<br>
> use -fsanitize= with appropriate values.<br>
><br>
> Modified:<br>
>    cfe/trunk/docs/UsersManual.rst<br>
>    cfe/trunk/include/clang/Basic/Sanitizers.def<br>
>    cfe/trunk/include/clang/Driver/Options.td<br>
>    cfe/trunk/include/clang/Driver/SanitizerArgs.h<br>
>    cfe/trunk/lib/CodeGen/CodeGenFunction.cpp<br>
>    cfe/trunk/lib/Driver/SanitizerArgs.cpp<br>
>    cfe/trunk/lib/Driver/Tools.cpp<br>
>    cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp<br>
>    cfe/trunk/test/CodeGenCXX/bitfield.cpp<br>
>    cfe/trunk/test/Driver/asan.c<br>
>    cfe/trunk/test/Driver/darwin-asan-nofortify.c<br>
>    cfe/trunk/test/Driver/fsanitize.c<br>
><br>
> Modified: cfe/trunk/docs/UsersManual.rst<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UsersManual.rst?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UsersManual.rst?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/docs/UsersManual.rst (original)<br>
> +++ cfe/trunk/docs/UsersManual.rst Thu Mar 20 05:48:29 2014<br>
> @@ -999,18 +999,6 @@ are listed below.<br>
>    program. The ``-fsanitize=undefined`` checks can be combined with other<br>
>    sanitizers.<br>
><br>
> -**-f[no-]address-sanitizer**<br>
> -   Deprecated synonym for :ref:`-f[no-]sanitize=address<br>
> -   <opt_fsanitize_address>`.<br>
> -**-f[no-]thread-sanitizer**<br>
> -   Deprecated synonym for :ref:`-f[no-]sanitize=thread<br>
> -   <opt_fsanitize_thread>`.<br>
> -<br>
> -.. option:: -fcatch-undefined-behavior<br>
> -<br>
> -   Deprecated synonym for :ref:`-fsanitize=undefined<br>
> -   <opt_fsanitize_undefined>`.<br>
> -<br>
> .. option:: -fno-assume-sane-operator-new<br>
><br>
>    Don't assume that the C++'s new operator is sane.<br>
><br>
> Modified: cfe/trunk/include/clang/Basic/Sanitizers.def<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Sanitizers.def?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Sanitizers.def?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/include/clang/Basic/Sanitizers.def (original)<br>
> +++ cfe/trunk/include/clang/Basic/Sanitizers.def Thu Mar 20 05:48:29 2014<br>
> @@ -89,7 +89,7 @@ SANITIZER_GROUP("undefined", Undefined,<br>
>                 ObjectSize | Return | Shift | SignedIntegerOverflow |<br>
>                 Unreachable | VLABound | Vptr)<br>
><br>
> -// -fsanitize=undefined-trap (and its alias -fcatch-undefined-behavior) includes<br>
> +// -fsanitize=undefined-trap includes<br>
> // all sanitizers included by -fsanitize=undefined, except those that require<br>
> // runtime support.  This group is generally used in conjunction with the<br>
> // -fsanitize-undefined-trap-on-error flag.<br>
><br>
> Modified: cfe/trunk/include/clang/Driver/Options.td<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/include/clang/Driver/Options.td (original)<br>
> +++ cfe/trunk/include/clang/Driver/Options.td Thu Mar 20 05:48:29 2014<br>
> @@ -357,10 +357,6 @@ def fapple_kext : Flag<["-"], "fapple-ke<br>
>   HelpText<"Use Apple's kernel extensions ABI">;<br>
> def fapple_pragma_pack : Flag<["-"], "fapple-pragma-pack">, Group<f_Group>, Flags<[CC1Option]>,<br>
>   HelpText<"Enable Apple gcc-compatible #pragma pack handling">;<br>
> -def faddress_sanitizer : Flag<["-"], "faddress-sanitizer">, Group<f_Group>;<br>
> -def fno_address_sanitizer : Flag<["-"], "fno-address-sanitizer">, Group<f_Group>;<br>
> -def fthread_sanitizer : Flag<["-"], "fthread-sanitizer">, Group<f_Group>;<br>
> -def fno_thread_sanitizer : Flag<["-"], "fno-thread-sanitizer">, Group<f_Group>;<br>
> def fasm : Flag<["-"], "fasm">, Group<f_Group>;<br>
><br>
> def fasm_blocks : Flag<["-"], "fasm-blocks">, Group<f_Group>, Flags<[CC1Option]>;<br>
> @@ -401,7 +397,6 @@ def fbounds_checking_EQ : Joined<["-"],<br>
>   Group<f_Group>;<br>
> def fbuiltin : Flag<["-"], "fbuiltin">, Group<f_Group>;<br>
> def fcaret_diagnostics : Flag<["-"], "fcaret-diagnostics">, Group<f_Group>;<br>
> -def fcatch_undefined_behavior : Flag<["-"], "fcatch-undefined-behavior">, Group<f_Group>;<br>
> def fclasspath_EQ : Joined<["-"], "fclasspath=">, Group<f_Group>;<br>
> def fcolor_diagnostics : Flag<["-"], "fcolor-diagnostics">, Group<f_Group>, Flags<[CC1Option]>,<br>
>   HelpText<"Use colors in diagnostics">;<br>
><br>
> Modified: cfe/trunk/include/clang/Driver/SanitizerArgs.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/SanitizerArgs.h?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/SanitizerArgs.h?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/include/clang/Driver/SanitizerArgs.h (original)<br>
> +++ cfe/trunk/include/clang/Driver/SanitizerArgs.h Thu Mar 20 05:48:29 2014<br>
> @@ -100,7 +100,7 @@ class SanitizerArgs {<br>
><br>
>   /// Produce an argument string from ArgList \p Args, which shows how it<br>
>   /// provides a sanitizer kind in \p Mask. For example, the argument list<br>
> -  /// "-fsanitize=thread,vptr -faddress-sanitizer" with mask \c NeedsUbsanRt<br>
> +  /// "-fsanitize=thread,vptr -fsanitize=address" with mask \c NeedsUbsanRt<br>
>   /// would produce "-fsanitize=vptr".<br>
>   static std::string lastArgumentForKind(const Driver &D,<br>
>                                          const llvm::opt::ArgList &Args,<br>
><br>
> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)<br>
> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Thu Mar 20 05:48:29 2014<br>
> @@ -1365,7 +1365,7 @@ CodeGenFunction::getVLASize(const Variab<br>
>       numElements = vlaSize;<br>
>     } else {<br>
>       // It's undefined behavior if this wraps around, so mark it that way.<br>
> -      // FIXME: Teach -fcatch-undefined-behavior to trap this.<br>
> +      // FIXME: Teach -fsanitize=undefined to trap this.<br>
>       numElements = Builder.CreateNUWMul(numElements, vlaSize);<br>
>     }<br>
>   } while ((type = getContext().getAsVariableArrayType(elementType)));<br>
><br>
> Modified: cfe/trunk/lib/Driver/SanitizerArgs.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/SanitizerArgs.cpp?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/SanitizerArgs.cpp?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/Driver/SanitizerArgs.cpp (original)<br>
> +++ cfe/trunk/lib/Driver/SanitizerArgs.cpp Thu Mar 20 05:48:29 2014<br>
> @@ -71,30 +71,14 @@ SanitizerArgs::SanitizerArgs(const ToolC<br>
>   }<br>
><br>
>   UbsanTrapOnError =<br>
> -    Args.hasArg(options::OPT_fcatch_undefined_behavior) ||<br>
>     Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,<br>
>                  options::OPT_fno_sanitize_undefined_trap_on_error, false);<br>
><br>
> -  if (Args.hasArg(options::OPT_fcatch_undefined_behavior) &&<br>
> -      !Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,<br>
> -                    options::OPT_fno_sanitize_undefined_trap_on_error, true)) {<br>
> -    D.Diag(diag::err_drv_argument_not_allowed_with)<br>
> -      << "-fcatch-undefined-behavior"<br>
> -      << "-fno-sanitize-undefined-trap-on-error";<br>
> -  }<br>
> -<br>
>   // Warn about undefined sanitizer options that require runtime support.<br>
>   if (UbsanTrapOnError && notAllowedWithTrap()) {<br>
> -    if (Args.hasArg(options::OPT_fcatch_undefined_behavior))<br>
> -      D.Diag(diag::err_drv_argument_not_allowed_with)<br>
> -        << lastArgumentForKind(D, Args, NotAllowedWithTrap)<br>
> -        << "-fcatch-undefined-behavior";<br>
> -    else if (Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,<br>
> -                          options::OPT_fno_sanitize_undefined_trap_on_error,<br>
> -                          false))<br>
> -      D.Diag(diag::err_drv_argument_not_allowed_with)<br>
> -        << lastArgumentForKind(D, Args, NotAllowedWithTrap)<br>
> -        << "-fsanitize-undefined-trap-on-error";<br>
> +    D.Diag(diag::err_drv_argument_not_allowed_with)<br>
> +      << lastArgumentForKind(D, Args, NotAllowedWithTrap)<br>
> +      << "-fsanitize-undefined-trap-on-error";<br>
>   }<br>
><br>
>   // Only one runtime library can be used at once.<br>
> @@ -279,24 +263,8 @@ bool SanitizerArgs::parse(const Driver &<br>
>   Add = 0;<br>
>   Remove = 0;<br>
>   const char *DeprecatedReplacement = 0;<br>
> -  if (A->getOption().matches(options::OPT_faddress_sanitizer)) {<br>
> -    Add = Address;<br>
> -    DeprecatedReplacement = "-fsanitize=address";<br>
> -  } else if (A->getOption().matches(options::OPT_fno_address_sanitizer)) {<br>
> -    Remove = Address;<br>
> -    DeprecatedReplacement = "-fno-sanitize=address";<br>
> -  } else if (A->getOption().matches(options::OPT_fthread_sanitizer)) {<br>
> -    Add = Thread;<br>
> -    DeprecatedReplacement = "-fsanitize=thread";<br>
> -  } else if (A->getOption().matches(options::OPT_fno_thread_sanitizer)) {<br>
> -    Remove = Thread;<br>
> -    DeprecatedReplacement = "-fno-sanitize=thread";<br>
> -  } else if (A->getOption().matches(options::OPT_fcatch_undefined_behavior)) {<br>
> -    Add = UndefinedTrap;<br>
> -    DeprecatedReplacement =<br>
> -      "-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error";<br>
> -  } else if (A->getOption().matches(options::OPT_fbounds_checking) ||<br>
> -             A->getOption().matches(options::OPT_fbounds_checking_EQ)) {<br>
> +  if (A->getOption().matches(options::OPT_fbounds_checking) ||<br>
> +      A->getOption().matches(options::OPT_fbounds_checking_EQ)) {<br>
>     Add = LocalBounds;<br>
>     DeprecatedReplacement = "-fsanitize=local-bounds";<br>
>   } else if (A->getOption().matches(options::OPT_fsanitize_EQ)) {<br>
><br>
> Modified: cfe/trunk/lib/Driver/Tools.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/Driver/Tools.cpp (original)<br>
> +++ cfe/trunk/lib/Driver/Tools.cpp Thu Mar 20 05:48:29 2014<br>
> @@ -3137,8 +3137,7 @@ void Clang::ConstructJob(Compilation &C,<br>
>                     true))<br>
>     CmdArgs.push_back("-fno-sanitize-recover");<br>
><br>
> -  if (Args.hasArg(options::OPT_fcatch_undefined_behavior) ||<br>
> -      Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,<br>
> +  if (Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,<br>
>                    options::OPT_fno_sanitize_undefined_trap_on_error, false))<br>
>     CmdArgs.push_back("-fsanitize-undefined-trap-on-error");<br>
><br>
><br>
> Modified: cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp (original)<br>
> +++ cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp Thu Mar 20 05:48:29 2014<br>
> @@ -6,7 +6,7 @@<br>
> // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - -O2  -relaxed-aliasing %s | FileCheck %s --check-prefix=NOTBAA<br>
> //<br>
> // Check that we generate TBAA for vtable pointer loads and stores.<br>
> -// When -fthread-sanitizer is used TBAA should be generated at all opt levels<br>
> +// When -fsanitize=thread is used TBAA should be generated at all opt levels<br>
> // even if -relaxed-aliasing is present.<br>
> struct A {<br>
>   virtual int foo() const ;<br>
><br>
> Modified: cfe/trunk/test/CodeGenCXX/bitfield.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/bitfield.cpp?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/bitfield.cpp?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/CodeGenCXX/bitfield.cpp (original)<br>
> +++ cfe/trunk/test/CodeGenCXX/bitfield.cpp Thu Mar 20 05:48:29 2014<br>
> @@ -298,7 +298,7 @@ namespace N4 {<br>
> #endif<br>
>   unsigned read(Base* s) {<br>
>     // FIXME: We should widen this load as long as the function isn't being<br>
> -    // instrumented by thread-sanitizer.<br>
> +    // instrumented by ThreadSanitizer.<br>
>     //<br>
>     // CHECK-X86-64-LABEL: define i32 @_ZN2N44read<br>
>     // CHECK-X86-64:   %[[gep:.*]] = getelementptr inbounds {{.*}}* %{{.*}}, i32 0, i32 1<br>
> @@ -378,8 +378,8 @@ namespace N6 {<br>
>   // Zero-length bitfields partition the memory locations of bitfields for the<br>
>   // purposes of the memory model. That means stores must not span zero-length<br>
>   // bitfields and loads may only span them when we are not instrumenting with<br>
> -  // thread sanitizer.<br>
> -  // FIXME: We currently don't widen loads even without thread sanitizer, even<br>
> +  // ThreadSanitizer.<br>
> +  // FIXME: We currently don't widen loads even without ThreadSanitizer, even<br>
>   // though we could.<br>
>   struct S {<br>
>     unsigned b1 : 24;<br>
> @@ -448,7 +448,7 @@ namespace N7 {<br>
> #endif<br>
>   unsigned read(B2* s) {<br>
>     // FIXME: We should widen this load as long as the function isn't being<br>
> -    // instrumented by thread-sanitizer.<br>
> +    // instrumented by ThreadSanitizer.<br>
>     //<br>
>     // CHECK-X86-64-LABEL: define i32 @_ZN2N74read<br>
>     // CHECK-X86-64:   %[[gep:.*]] = getelementptr inbounds {{.*}}* %{{.*}}, i32 0, i32 1<br>
><br>
> Modified: cfe/trunk/test/Driver/asan.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/asan.c?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/asan.c?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/Driver/asan.c (original)<br>
> +++ cfe/trunk/test/Driver/asan.c Thu Mar 20 05:48:29 2014<br>
> @@ -1,9 +1,8 @@<br>
> -// RUN: %clang     -target i386-unknown-unknown -faddress-sanitizer %s -S -emit-llvm -o - | FileCheck %s<br>
> -// RUN: %clang -O1 -target i386-unknown-unknown -faddress-sanitizer %s -S -emit-llvm -o - | FileCheck %s<br>
> -// RUN: %clang -O2 -target i386-unknown-unknown -faddress-sanitizer %s -S -emit-llvm -o - | FileCheck %s<br>
> -// RUN: %clang -O3 -target i386-unknown-unknown -faddress-sanitizer %s -S -emit-llvm -o - | FileCheck %s<br>
> -// RUN: %clang     -target i386-unknown-unknown -fsanitize=address  %s -S -emit-llvm -o - | FileCheck %s<br>
> -// Verify that -faddress-sanitizer invokes asan instrumentation.<br>
> +// RUN: %clang     -target i386-unknown-unknown -fsanitize=address %s -S -emit-llvm -o - | FileCheck %s<br>
> +// RUN: %clang -O1 -target i386-unknown-unknown -fsanitize=address %s -S -emit-llvm -o - | FileCheck %s<br>
> +// RUN: %clang -O2 -target i386-unknown-unknown -fsanitize=address %s -S -emit-llvm -o - | FileCheck %s<br>
> +// RUN: %clang -O3 -target i386-unknown-unknown -fsanitize=address %s -S -emit-llvm -o - | FileCheck %s<br>
> +// Verify that -fsanitize=address invokes asan instrumentation.<br>
><br>
> int foo(int *a) { return *a; }<br>
> // CHECK: __asan_init<br>
><br>
> Modified: cfe/trunk/test/Driver/darwin-asan-nofortify.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-asan-nofortify.c?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-asan-nofortify.c?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/Driver/darwin-asan-nofortify.c (original)<br>
> +++ cfe/trunk/test/Driver/darwin-asan-nofortify.c Thu Mar 20 05:48:29 2014<br>
> @@ -1,6 +1,5 @@<br>
> // Make sure AddressSanitizer disables _FORTIFY_SOURCE on Darwin.<br>
><br>
> -// RUN: %clang -faddress-sanitizer %s -E -dM -target x86_64-darwin | FileCheck %s<br>
> // RUN: %clang -fsanitize=address  %s -E -dM -target x86_64-darwin | FileCheck %s<br>
><br>
> // CHECK: #define _FORTIFY_SOURCE 0<br>
><br>
> Modified: cfe/trunk/test/Driver/fsanitize.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=204330&r1=204329&r2=204330&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=204330&r1=204329&r2=204330&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/Driver/fsanitize.c (original)<br>
> +++ cfe/trunk/test/Driver/fsanitize.c Thu Mar 20 05:48:29 2014<br>
> @@ -1,4 +1,3 @@<br>
> -// RUN: %clang -target x86_64-linux-gnu -fcatch-undefined-behavior %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-TRAP<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-TRAP<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize-undefined-trap-on-error -fsanitize=undefined-trap %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-TRAP<br>
> // CHECK-UNDEFINED-TRAP: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|shift|unreachable|return|vla-bound|alignment|null|object-size|float-cast-overflow|array-bounds|enum|bool),?){14}"}}<br>

> @@ -13,7 +12,7 @@<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=integer %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-INTEGER<br>
> // CHECK-INTEGER: "-fsanitize={{((signed-integer-overflow|unsigned-integer-overflow|integer-divide-by-zero|shift),?){4}"}}<br>
><br>
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread,undefined -fno-thread-sanitizer -fno-sanitize=float-cast-overflow,vptr,bool,enum %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PARTIAL-UNDEFINED<br>

> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread,undefined -fno-sanitize=thread -fno-sanitize=float-cast-overflow,vptr,bool,enum %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PARTIAL-UNDEFINED<br>

> // CHECK-PARTIAL-UNDEFINED: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|float-divide-by-zero|function|shift|unreachable|return|vla-bound|alignment|null|object-size|array-bounds),?){12}"}}<br>

><br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address-full %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-FULL<br>
> @@ -28,12 +27,6 @@<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fno-sanitize=use-after-return %s -### 2>&1 |  FileCheck %s --check-prefix=CHECK-ASAN-NO-IMPLIED-UAR<br>
> // CHECK-ASAN-NO-IMPLIED-UAR-NOT: use-after-return<br>
><br>
> -// RUN: %clang -target x86_64-linux-gnu -fcatch-undefined-behavior -fno-sanitize-undefined-trap-on-error %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-NO-TRAP-ERROR<br>
> -// CHECK-UNDEFINED-NO-TRAP-ERROR: '-fcatch-undefined-behavior' not allowed with '-fno-sanitize-undefined-trap-on-error'<br>
> -<br>
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr -fcatch-undefined-behavior %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-VPTR-UNDEF-ERROR<br>
> -// CHECK-VPTR-UNDEF-ERROR: '-fsanitize=vptr' not allowed with '-fcatch-undefined-behavior'<br>
> -<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=undefined -fsanitize-undefined-trap-on-error %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-TRAP-ON-ERROR-UNDEF<br>
> // CHECK-UNDEFINED-TRAP-ON-ERROR-UNDEF: '-fsanitize=undefined' not allowed with '-fsanitize-undefined-trap-on-error'<br>
><br>
> @@ -62,9 +55,6 @@<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=leak,memory -pie -fno-rtti %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-SANM<br>
> // CHECK-SANL-SANM: '-fsanitize=leak' not allowed with '-fsanitize=memory'<br>
><br>
> -// RUN: %clang -target x86_64-linux-gnu -faddress-sanitizer -fthread-sanitizer -fno-rtti %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-TSAN<br>
> -// CHECK-ASAN-TSAN: '-faddress-sanitizer' not allowed with '-fthread-sanitizer'<br>
> -<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=init-order %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ONLY-EXTRA-ASAN<br>
> // CHECK-ONLY-EXTRA-ASAN: '-fsanitize=init-order' is ignored in absence of '-fsanitize=address'<br>
><br>
> @@ -92,13 +82,8 @@<br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr -fno-sanitize=vptr -fsanitize=undefined,address %s -### 2>&1<br>
> // OK<br>
><br>
> -// RUN: %clang -target x86_64-linux-gnu -fcatch-undefined-behavior -fthread-sanitizer -fno-thread-sanitizer -faddress-sanitizer -fno-address-sanitizer -fbounds-checking -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-DEPRECATED<br>

> +// RUN: %clang -target x86_64-linux-gnu -fbounds-checking -### %s 2>&1 | FileCheck %s --check-prefix=CHECK-DEPRECATED<br>
> // CHECK-DEPRECATED: argument '-fbounds-checking' is deprecated, use '-fsanitize=local-bounds' instead<br>
> -// CHECK-DEPRECATED: argument '-fno-address-sanitizer' is deprecated, use '-fno-sanitize=address' instead<br>
> -// CHECK-DEPRECATED: argument '-faddress-sanitizer' is deprecated, use '-fsanitize=address' instead<br>
> -// CHECK-DEPRECATED: argument '-fno-thread-sanitizer' is deprecated, use '-fno-sanitize=thread' instead<br>
> -// CHECK-DEPRECATED: argument '-fthread-sanitizer' is deprecated, use '-fsanitize=thread' instead<br>
> -// CHECK-DEPRECATED: argument '-fcatch-undefined-behavior' is deprecated, use '-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error' instead<br>
><br>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-NO-PIE<br>
> // CHECK-TSAN-NO-PIE: "-mrelocation-model" "pic" "-pic-level" "2" "-pie-level" "2"<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div>