From 2d88f3d623e603d11fbf3b7325ed25446842b74f Mon Sep 17 00:00:00 2001 From: Kostya Serebryany Date: Tue, 6 Jan 2015 01:02:48 +0000 Subject: Allow -fsanitize-coverage=N with ubsan, clang part Summary: Allow -fsanitize-coverage=N with ubsan, clang part. This simply allows the flag combination. The LLVM will work out of the box, the compile-rt part will follow as a separate patch. Test Plan: check-clang Reviewers: samsonov Reviewed By: samsonov Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6849 llvm-svn: 225229 --- clang/lib/Driver/SanitizerArgs.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'clang/lib/Driver') diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index adffad2daad..09c2cb05f4f 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -43,7 +43,8 @@ ID = ALIAS, ID##Group = 1 << SO_##ID##Group, NeedsUbsanRt = Undefined | Integer, NotAllowedWithTrap = Vptr, RequiresPIE = Memory | DataFlow, - NeedsUnwindTables = Address | Thread | Memory | DataFlow + NeedsUnwindTables = Address | Thread | Memory | DataFlow, + SupportsCoverage = Address | Memory | Leak | Undefined | Integer }; } @@ -295,7 +296,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, } // Parse -fsanitize-coverage=N. Currently one of asan/msan/lsan is required. - if (NeedsAsan || NeedsMsan || NeedsLsan) { + if (hasOneOf(Sanitizers, SupportsCoverage)) { if (Arg *A = Args.getLastArg(options::OPT_fsanitize_coverage)) { StringRef S = A->getValue(); // Legal values are 0..4. -- cgit v1.2.3