From a9d8be68c1c3b6081ceef7eceb889fa429e626b2 Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Mon, 8 May 2017 21:11:55 +0000 Subject: [Driver] Don't enable -fsanitize-use-after-scope when ASan is disabled When enabling any sanitizer, -fsanitize-use-after-scope is enabled by default. This doesn't actually turn ASan on, because we've been getting lucky and there are extra checks in BackendUtil that stop this from happening. However, this has been causing a behavior change: extra lifetime markers are emitted in some cases where they aren't needed or expected. llvm-svn: 302468 --- clang/lib/Driver/SanitizerArgs.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'clang/lib/Driver/SanitizerArgs.cpp') diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index c298302c477..b1f5f860d42 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -563,12 +563,11 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, } } - if (Arg *A = Args.getLastArg( - options::OPT_fsanitize_address_use_after_scope, - options::OPT_fno_sanitize_address_use_after_scope)) { - AsanUseAfterScope = A->getOption().getID() == - options::OPT_fsanitize_address_use_after_scope; - } + AsanUseAfterScope = Args.hasFlag( + options::OPT_fsanitize_address_use_after_scope, + options::OPT_fno_sanitize_address_use_after_scope, AsanUseAfterScope); + } else { + AsanUseAfterScope = false; } // Parse -link-cxx-sanitizer flag. -- cgit v1.2.3