I think it's fine to add whatever commandline flags are needed for testing - they are not user-visible anyway, and we should have *some* means to test KASan instrumentation without a frontend.
Looks mostly good. ================ Comment at: lib/Transforms/Instrumentation/AddressSanitizer.cpp:1447 @@ +1446,3 @@ + if (!CompileKernel) + appendToGlobalCtors(M, AsanCtorFunction, kAsanCtorAndDtorPriority); + Mapping = getShadowMapping(TargetTriple, LongSize, CompileKernel); ---------------- I would actually prefer a null initialization, as it's weird to create functions that would never be called in KASan mode. ================ Comment at: tools/clang/include/clang/Basic/Sanitizers.h:56 @@ +55,3 @@ + /// \brief Check if either ASan or KASan is enabled. + bool hasAsanOrKasan() const; + ---------------- Um, no, I mean to add `hasOneOf` method that would take ArrayRef of sanitizer kinds and return true iff at least one of them is enabled. Then you could call it as... ================ Comment at: tools/clang/lib/AST/Decl.cpp:3684 @@ -3683,3 +3683,3 @@ ASTContext &Context = getASTContext(); - if (!Context.getLangOpts().Sanitize.has(SanitizerKind::Address) || + if (!(Context.getLangOpts().Sanitize.hasAsanOrKasan()) || !Context.getLangOpts().SanitizeAddressFieldPadding) ---------------- Context.getLangOpts().Sanitize.hasOneOf({SanitizerKind::Address, SanitizerKind::KernelAddress}) ================ Comment at: tools/clang/lib/CodeGen/BackendUtil.cpp:204 @@ -203,3 +203,3 @@ legacy::PassManagerBase &PM) { PM.add(createAddressSanitizerFunctionPass()); PM.add(createAddressSanitizerModulePass()); ---------------- Pass false here. http://reviews.llvm.org/D10411 EMAIL PREFERENCES http://reviews.llvm.org/settings/panel/emailpreferences/ _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits