On Mon, Nov 19, 2012 at 10:26:26PM +0400, Konstantin Serebryany wrote: > FYI > Clang also supports the no- form (-fno-sanitize=address). > We probably want it here too, but preferably as a separate patch. > (or is it automatically implemented via some internal magic?)
So, how does it work in clang? Does -fsanitize=address -fsanitize=thread enable both asan and tsan, or just tsan? Does -fsanitize=thread -fno-sanitize=address enable tsan or not? If -fsanitize=thread doesn't disable ASAN, then you can't use the same flag variable for both, you need flag_asan and flag_tsan as before on the compiler side, and just fsanitize=address and fsanitize=thread in common.opt, without RejectNegative, and with appropriate Var(flag_asan) resp. Var(flag_tsan). > On Mon, Nov 19, 2012 at 10:14 PM, Wei Mi <w...@google.com> wrote: > > Hi, > > > > This patch is to change -faddress-sanitizer to -fsanitize=address. Ok for > > trunk? > > > > 2012-11-19 Wei Mi <w...@google.com> > > > > * cfgexpand.c (partition_stack_vars): Change flag_asan to > > flag_sanitize. > > (expand_stack_vars): Likewise. > > (defer_stack_allocation): Likewise. > > (expand_used_vars): Likewise. > > * varasm.c (assemble_noswitch_variable): Likewise. > > (assemble_variable): Likewise. > > (place_block_symbol): Likewise. > > * asan.c (gate_asan): Likewise. > > (gate_asan_O0): Likewise. > > * toplev.c (compile_file): Likewise. > > (process_options): Likewise. > > * common.opt: Change faddress-sanitizer to fsanitize=address. > > * gcc.c (LINK_COMMAND_SPEC): Likewise. > > * testsuite/lib/asan-dg.exp > > (check_effective_target_faddress_sanitizer): Likewise. > > (asan_init): Likewise. > > * flag-types.h (sanitize_type): New enum type. > > * doc/invoke.texi (-fsanitize=[address|thread]): Document. > > > > Thanks, > > Wei. Jakub