r204330 - Kill -faddress-sanitizer, -fthread-sanitizer and -fcatch-undefined-behavior flags.

Alexey Samsonov samsonov at google.com
Fri Mar 21 00:31:20 PDT 2014


Good idea, done in r204438.


On Thu, Mar 20, 2014 at 7:59 PM, Rafael Avila de Espindola <
rafael.espindola at gmail.com> wrote:

> This should probably go to the release notes.
>
> Sent from my iPhone
>
> > On Mar 20, 2014, at 3:48, Alexey Samsonov <samsonov at google.com> wrote:
> >
> > Author: samsonov
> > Date: Thu Mar 20 05:48:29 2014
> > New Revision: 204330
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=204330&view=rev
> > Log:
> > Kill -faddress-sanitizer, -fthread-sanitizer and
> -fcatch-undefined-behavior flags.
> >
> > These flags are deprecated since at least Clang 3.3. Users should instead
> > use -fsanitize= with appropriate values.
> >
> > Modified:
> >    cfe/trunk/docs/UsersManual.rst
> >    cfe/trunk/include/clang/Basic/Sanitizers.def
> >    cfe/trunk/include/clang/Driver/Options.td
> >    cfe/trunk/include/clang/Driver/SanitizerArgs.h
> >    cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> >    cfe/trunk/lib/Driver/SanitizerArgs.cpp
> >    cfe/trunk/lib/Driver/Tools.cpp
> >    cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp
> >    cfe/trunk/test/CodeGenCXX/bitfield.cpp
> >    cfe/trunk/test/Driver/asan.c
> >    cfe/trunk/test/Driver/darwin-asan-nofortify.c
> >    cfe/trunk/test/Driver/fsanitize.c
> >
> > Modified: cfe/trunk/docs/UsersManual.rst
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/UsersManual.rst?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/docs/UsersManual.rst (original)
> > +++ cfe/trunk/docs/UsersManual.rst Thu Mar 20 05:48:29 2014
> > @@ -999,18 +999,6 @@ are listed below.
> >    program. The ``-fsanitize=undefined`` checks can be combined with
> other
> >    sanitizers.
> >
> > -**-f[no-]address-sanitizer**
> > -   Deprecated synonym for :ref:`-f[no-]sanitize=address
> > -   <opt_fsanitize_address>`.
> > -**-f[no-]thread-sanitizer**
> > -   Deprecated synonym for :ref:`-f[no-]sanitize=thread
> > -   <opt_fsanitize_thread>`.
> > -
> > -.. option:: -fcatch-undefined-behavior
> > -
> > -   Deprecated synonym for :ref:`-fsanitize=undefined
> > -   <opt_fsanitize_undefined>`.
> > -
> > .. option:: -fno-assume-sane-operator-new
> >
> >    Don't assume that the C++'s new operator is sane.
> >
> > Modified: cfe/trunk/include/clang/Basic/Sanitizers.def
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Sanitizers.def?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/include/clang/Basic/Sanitizers.def (original)
> > +++ cfe/trunk/include/clang/Basic/Sanitizers.def Thu Mar 20 05:48:29 2014
> > @@ -89,7 +89,7 @@ SANITIZER_GROUP("undefined", Undefined,
> >                 ObjectSize | Return | Shift | SignedIntegerOverflow |
> >                 Unreachable | VLABound | Vptr)
> >
> > -// -fsanitize=undefined-trap (and its alias -fcatch-undefined-behavior)
> includes
> > +// -fsanitize=undefined-trap includes
> > // all sanitizers included by -fsanitize=undefined, except those that
> require
> > // runtime support.  This group is generally used in conjunction with the
> > // -fsanitize-undefined-trap-on-error flag.
> >
> > Modified: cfe/trunk/include/clang/Driver/Options.td
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/include/clang/Driver/Options.td (original)
> > +++ cfe/trunk/include/clang/Driver/Options.td Thu Mar 20 05:48:29 2014
> > @@ -357,10 +357,6 @@ def fapple_kext : Flag<["-"], "fapple-ke
> >   HelpText<"Use Apple's kernel extensions ABI">;
> > def fapple_pragma_pack : Flag<["-"], "fapple-pragma-pack">,
> Group<f_Group>, Flags<[CC1Option]>,
> >   HelpText<"Enable Apple gcc-compatible #pragma pack handling">;
> > -def faddress_sanitizer : Flag<["-"], "faddress-sanitizer">,
> Group<f_Group>;
> > -def fno_address_sanitizer : Flag<["-"], "fno-address-sanitizer">,
> Group<f_Group>;
> > -def fthread_sanitizer : Flag<["-"], "fthread-sanitizer">,
> Group<f_Group>;
> > -def fno_thread_sanitizer : Flag<["-"], "fno-thread-sanitizer">,
> Group<f_Group>;
> > def fasm : Flag<["-"], "fasm">, Group<f_Group>;
> >
> > def fasm_blocks : Flag<["-"], "fasm-blocks">, Group<f_Group>,
> Flags<[CC1Option]>;
> > @@ -401,7 +397,6 @@ def fbounds_checking_EQ : Joined<["-"],
> >   Group<f_Group>;
> > def fbuiltin : Flag<["-"], "fbuiltin">, Group<f_Group>;
> > def fcaret_diagnostics : Flag<["-"], "fcaret-diagnostics">,
> Group<f_Group>;
> > -def fcatch_undefined_behavior : Flag<["-"],
> "fcatch-undefined-behavior">, Group<f_Group>;
> > def fclasspath_EQ : Joined<["-"], "fclasspath=">, Group<f_Group>;
> > def fcolor_diagnostics : Flag<["-"], "fcolor-diagnostics">,
> Group<f_Group>, Flags<[CC1Option]>,
> >   HelpText<"Use colors in diagnostics">;
> >
> > Modified: cfe/trunk/include/clang/Driver/SanitizerArgs.h
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/SanitizerArgs.h?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/include/clang/Driver/SanitizerArgs.h (original)
> > +++ cfe/trunk/include/clang/Driver/SanitizerArgs.h Thu Mar 20 05:48:29
> 2014
> > @@ -100,7 +100,7 @@ class SanitizerArgs {
> >
> >   /// Produce an argument string from ArgList \p Args, which shows how it
> >   /// provides a sanitizer kind in \p Mask. For example, the argument
> list
> > -  /// "-fsanitize=thread,vptr -faddress-sanitizer" with mask \c
> NeedsUbsanRt
> > +  /// "-fsanitize=thread,vptr -fsanitize=address" with mask \c
> NeedsUbsanRt
> >   /// would produce "-fsanitize=vptr".
> >   static std::string lastArgumentForKind(const Driver &D,
> >                                          const llvm::opt::ArgList &Args,
> >
> > Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)
> > +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Thu Mar 20 05:48:29 2014
> > @@ -1365,7 +1365,7 @@ CodeGenFunction::getVLASize(const Variab
> >       numElements = vlaSize;
> >     } else {
> >       // It's undefined behavior if this wraps around, so mark it that
> way.
> > -      // FIXME: Teach -fcatch-undefined-behavior to trap this.
> > +      // FIXME: Teach -fsanitize=undefined to trap this.
> >       numElements = Builder.CreateNUWMul(numElements, vlaSize);
> >     }
> >   } while ((type = getContext().getAsVariableArrayType(elementType)));
> >
> > Modified: cfe/trunk/lib/Driver/SanitizerArgs.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/SanitizerArgs.cpp?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/lib/Driver/SanitizerArgs.cpp (original)
> > +++ cfe/trunk/lib/Driver/SanitizerArgs.cpp Thu Mar 20 05:48:29 2014
> > @@ -71,30 +71,14 @@ SanitizerArgs::SanitizerArgs(const ToolC
> >   }
> >
> >   UbsanTrapOnError =
> > -    Args.hasArg(options::OPT_fcatch_undefined_behavior) ||
> >     Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,
> >                  options::OPT_fno_sanitize_undefined_trap_on_error,
> false);
> >
> > -  if (Args.hasArg(options::OPT_fcatch_undefined_behavior) &&
> > -      !Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,
> > -                    options::OPT_fno_sanitize_undefined_trap_on_error,
> true)) {
> > -    D.Diag(diag::err_drv_argument_not_allowed_with)
> > -      << "-fcatch-undefined-behavior"
> > -      << "-fno-sanitize-undefined-trap-on-error";
> > -  }
> > -
> >   // Warn about undefined sanitizer options that require runtime support.
> >   if (UbsanTrapOnError && notAllowedWithTrap()) {
> > -    if (Args.hasArg(options::OPT_fcatch_undefined_behavior))
> > -      D.Diag(diag::err_drv_argument_not_allowed_with)
> > -        << lastArgumentForKind(D, Args, NotAllowedWithTrap)
> > -        << "-fcatch-undefined-behavior";
> > -    else if
> (Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,
> > -
>  options::OPT_fno_sanitize_undefined_trap_on_error,
> > -                          false))
> > -      D.Diag(diag::err_drv_argument_not_allowed_with)
> > -        << lastArgumentForKind(D, Args, NotAllowedWithTrap)
> > -        << "-fsanitize-undefined-trap-on-error";
> > +    D.Diag(diag::err_drv_argument_not_allowed_with)
> > +      << lastArgumentForKind(D, Args, NotAllowedWithTrap)
> > +      << "-fsanitize-undefined-trap-on-error";
> >   }
> >
> >   // Only one runtime library can be used at once.
> > @@ -279,24 +263,8 @@ bool SanitizerArgs::parse(const Driver &
> >   Add = 0;
> >   Remove = 0;
> >   const char *DeprecatedReplacement = 0;
> > -  if (A->getOption().matches(options::OPT_faddress_sanitizer)) {
> > -    Add = Address;
> > -    DeprecatedReplacement = "-fsanitize=address";
> > -  } else if
> (A->getOption().matches(options::OPT_fno_address_sanitizer)) {
> > -    Remove = Address;
> > -    DeprecatedReplacement = "-fno-sanitize=address";
> > -  } else if (A->getOption().matches(options::OPT_fthread_sanitizer)) {
> > -    Add = Thread;
> > -    DeprecatedReplacement = "-fsanitize=thread";
> > -  } else if (A->getOption().matches(options::OPT_fno_thread_sanitizer))
> {
> > -    Remove = Thread;
> > -    DeprecatedReplacement = "-fno-sanitize=thread";
> > -  } else if
> (A->getOption().matches(options::OPT_fcatch_undefined_behavior)) {
> > -    Add = UndefinedTrap;
> > -    DeprecatedReplacement =
> > -      "-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error";
> > -  } else if (A->getOption().matches(options::OPT_fbounds_checking) ||
> > -             A->getOption().matches(options::OPT_fbounds_checking_EQ)) {
> > +  if (A->getOption().matches(options::OPT_fbounds_checking) ||
> > +      A->getOption().matches(options::OPT_fbounds_checking_EQ)) {
> >     Add = LocalBounds;
> >     DeprecatedReplacement = "-fsanitize=local-bounds";
> >   } else if (A->getOption().matches(options::OPT_fsanitize_EQ)) {
> >
> > Modified: cfe/trunk/lib/Driver/Tools.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/lib/Driver/Tools.cpp (original)
> > +++ cfe/trunk/lib/Driver/Tools.cpp Thu Mar 20 05:48:29 2014
> > @@ -3137,8 +3137,7 @@ void Clang::ConstructJob(Compilation &C,
> >                     true))
> >     CmdArgs.push_back("-fno-sanitize-recover");
> >
> > -  if (Args.hasArg(options::OPT_fcatch_undefined_behavior) ||
> > -      Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,
> > +  if (Args.hasFlag(options::OPT_fsanitize_undefined_trap_on_error,
> >                    options::OPT_fno_sanitize_undefined_trap_on_error,
> false))
> >     CmdArgs.push_back("-fsanitize-undefined-trap-on-error");
> >
> >
> > Modified: cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp (original)
> > +++ cfe/trunk/test/CodeGen/tbaa-for-vptr.cpp Thu Mar 20 05:48:29 2014
> > @@ -6,7 +6,7 @@
> > // RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm -o - -O2
>  -relaxed-aliasing %s | FileCheck %s --check-prefix=NOTBAA
> > //
> > // Check that we generate TBAA for vtable pointer loads and stores.
> > -// When -fthread-sanitizer is used TBAA should be generated at all opt
> levels
> > +// When -fsanitize=thread is used TBAA should be generated at all opt
> levels
> > // even if -relaxed-aliasing is present.
> > struct A {
> >   virtual int foo() const ;
> >
> > Modified: cfe/trunk/test/CodeGenCXX/bitfield.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/bitfield.cpp?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/CodeGenCXX/bitfield.cpp (original)
> > +++ cfe/trunk/test/CodeGenCXX/bitfield.cpp Thu Mar 20 05:48:29 2014
> > @@ -298,7 +298,7 @@ namespace N4 {
> > #endif
> >   unsigned read(Base* s) {
> >     // FIXME: We should widen this load as long as the function isn't
> being
> > -    // instrumented by thread-sanitizer.
> > +    // instrumented by ThreadSanitizer.
> >     //
> >     // CHECK-X86-64-LABEL: define i32 @_ZN2N44read
> >     // CHECK-X86-64:   %[[gep:.*]] = getelementptr inbounds {{.*}}*
> %{{.*}}, i32 0, i32 1
> > @@ -378,8 +378,8 @@ namespace N6 {
> >   // Zero-length bitfields partition the memory locations of bitfields
> for the
> >   // purposes of the memory model. That means stores must not span
> zero-length
> >   // bitfields and loads may only span them when we are not
> instrumenting with
> > -  // thread sanitizer.
> > -  // FIXME: We currently don't widen loads even without thread
> sanitizer, even
> > +  // ThreadSanitizer.
> > +  // FIXME: We currently don't widen loads even without
> ThreadSanitizer, even
> >   // though we could.
> >   struct S {
> >     unsigned b1 : 24;
> > @@ -448,7 +448,7 @@ namespace N7 {
> > #endif
> >   unsigned read(B2* s) {
> >     // FIXME: We should widen this load as long as the function isn't
> being
> > -    // instrumented by thread-sanitizer.
> > +    // instrumented by ThreadSanitizer.
> >     //
> >     // CHECK-X86-64-LABEL: define i32 @_ZN2N74read
> >     // CHECK-X86-64:   %[[gep:.*]] = getelementptr inbounds {{.*}}*
> %{{.*}}, i32 0, i32 1
> >
> > Modified: cfe/trunk/test/Driver/asan.c
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/asan.c?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/Driver/asan.c (original)
> > +++ cfe/trunk/test/Driver/asan.c Thu Mar 20 05:48:29 2014
> > @@ -1,9 +1,8 @@
> > -// RUN: %clang     -target i386-unknown-unknown -faddress-sanitizer %s
> -S -emit-llvm -o - | FileCheck %s
> > -// RUN: %clang -O1 -target i386-unknown-unknown -faddress-sanitizer %s
> -S -emit-llvm -o - | FileCheck %s
> > -// RUN: %clang -O2 -target i386-unknown-unknown -faddress-sanitizer %s
> -S -emit-llvm -o - | FileCheck %s
> > -// RUN: %clang -O3 -target i386-unknown-unknown -faddress-sanitizer %s
> -S -emit-llvm -o - | FileCheck %s
> > -// RUN: %clang     -target i386-unknown-unknown -fsanitize=address  %s
> -S -emit-llvm -o - | FileCheck %s
> > -// Verify that -faddress-sanitizer invokes asan instrumentation.
> > +// RUN: %clang     -target i386-unknown-unknown -fsanitize=address %s
> -S -emit-llvm -o - | FileCheck %s
> > +// RUN: %clang -O1 -target i386-unknown-unknown -fsanitize=address %s
> -S -emit-llvm -o - | FileCheck %s
> > +// RUN: %clang -O2 -target i386-unknown-unknown -fsanitize=address %s
> -S -emit-llvm -o - | FileCheck %s
> > +// RUN: %clang -O3 -target i386-unknown-unknown -fsanitize=address %s
> -S -emit-llvm -o - | FileCheck %s
> > +// Verify that -fsanitize=address invokes asan instrumentation.
> >
> > int foo(int *a) { return *a; }
> > // CHECK: __asan_init
> >
> > Modified: cfe/trunk/test/Driver/darwin-asan-nofortify.c
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-asan-nofortify.c?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/Driver/darwin-asan-nofortify.c (original)
> > +++ cfe/trunk/test/Driver/darwin-asan-nofortify.c Thu Mar 20 05:48:29
> 2014
> > @@ -1,6 +1,5 @@
> > // Make sure AddressSanitizer disables _FORTIFY_SOURCE on Darwin.
> >
> > -// RUN: %clang -faddress-sanitizer %s -E -dM -target x86_64-darwin |
> FileCheck %s
> > // RUN: %clang -fsanitize=address  %s -E -dM -target x86_64-darwin |
> FileCheck %s
> >
> > // CHECK: #define _FORTIFY_SOURCE 0
> >
> > Modified: cfe/trunk/test/Driver/fsanitize.c
> > URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/fsanitize.c?rev=204330&r1=204329&r2=204330&view=diff
> >
> ==============================================================================
> > --- cfe/trunk/test/Driver/fsanitize.c (original)
> > +++ cfe/trunk/test/Driver/fsanitize.c Thu Mar 20 05:48:29 2014
> > @@ -1,4 +1,3 @@
> > -// RUN: %clang -target x86_64-linux-gnu -fcatch-undefined-behavior %s
> -### 2>&1 | FileCheck %s --check-prefix=CHECK-UNDEFINED-TRAP
> > // 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
> > // 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
> > // 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}"}}
> > @@ -13,7 +12,7 @@
> > // RUN: %clang -target x86_64-linux-gnu -fsanitize=integer %s -### 2>&1
> | FileCheck %s --check-prefix=CHECK-INTEGER
> > // CHECK-INTEGER:
> "-fsanitize={{((signed-integer-overflow|unsigned-integer-overflow|integer-divide-by-zero|shift),?){4}"}}
> >
> > -// 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
> > +// 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
> > // 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}"}}
> >
> > // RUN: %clang -target x86_64-linux-gnu -fsanitize=address-full %s -###
> 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-FULL
> > @@ -28,12 +27,6 @@
> > // 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
> > // CHECK-ASAN-NO-IMPLIED-UAR-NOT: use-after-return
> >
> > -// 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
> > -// CHECK-UNDEFINED-NO-TRAP-ERROR: '-fcatch-undefined-behavior' not
> allowed with '-fno-sanitize-undefined-trap-on-error'
> > -
> > -// RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr
> -fcatch-undefined-behavior %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-VPTR-UNDEF-ERROR
> > -// CHECK-VPTR-UNDEF-ERROR: '-fsanitize=vptr' not allowed with
> '-fcatch-undefined-behavior'
> > -
> > // 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
> > // CHECK-UNDEFINED-TRAP-ON-ERROR-UNDEF: '-fsanitize=undefined' not
> allowed with '-fsanitize-undefined-trap-on-error'
> >
> > @@ -62,9 +55,6 @@
> > // RUN: %clang -target x86_64-linux-gnu -fsanitize=leak,memory -pie
> -fno-rtti %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-SANM
> > // CHECK-SANL-SANM: '-fsanitize=leak' not allowed with
> '-fsanitize=memory'
> >
> > -// RUN: %clang -target x86_64-linux-gnu -faddress-sanitizer
> -fthread-sanitizer -fno-rtti %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-ASAN-TSAN
> > -// CHECK-ASAN-TSAN: '-faddress-sanitizer' not allowed with
> '-fthread-sanitizer'
> > -
> > // RUN: %clang -target x86_64-linux-gnu -fsanitize=init-order %s -###
> 2>&1 | FileCheck %s --check-prefix=CHECK-ONLY-EXTRA-ASAN
> > // CHECK-ONLY-EXTRA-ASAN: '-fsanitize=init-order' is ignored in absence
> of '-fsanitize=address'
> >
> > @@ -92,13 +82,8 @@
> > // RUN: %clang -target x86_64-linux-gnu -fsanitize=vptr
> -fno-sanitize=vptr -fsanitize=undefined,address %s -### 2>&1
> > // OK
> >
> > -// 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
> > +// RUN: %clang -target x86_64-linux-gnu -fbounds-checking -### %s 2>&1
> | FileCheck %s --check-prefix=CHECK-DEPRECATED
> > // CHECK-DEPRECATED: argument '-fbounds-checking' is deprecated, use
> '-fsanitize=local-bounds' instead
> > -// CHECK-DEPRECATED: argument '-fno-address-sanitizer' is deprecated,
> use '-fno-sanitize=address' instead
> > -// CHECK-DEPRECATED: argument '-faddress-sanitizer' is deprecated, use
> '-fsanitize=address' instead
> > -// CHECK-DEPRECATED: argument '-fno-thread-sanitizer' is deprecated,
> use '-fno-sanitize=thread' instead
> > -// CHECK-DEPRECATED: argument '-fthread-sanitizer' is deprecated, use
> '-fsanitize=thread' instead
> > -// CHECK-DEPRECATED: argument '-fcatch-undefined-behavior' is
> deprecated, use '-fsanitize=undefined-trap
> -fsanitize-undefined-trap-on-error' instead
> >
> > // RUN: %clang -target x86_64-linux-gnu -fsanitize=thread %s -### 2>&1 |
> FileCheck %s --check-prefix=CHECK-TSAN-NO-PIE
> > // CHECK-TSAN-NO-PIE: "-mrelocation-model" "pic" "-pic-level" "2"
> "-pie-level" "2"
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > cfe-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>



-- 
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140321/5a7a6280/attachment.html>


More information about the cfe-commits mailing list