From fd652b1b8ffc245c24f4db00260ba85b162f37f1 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Tue, 15 Mar 2016 09:41:39 +0000 Subject: Restrict the hack from r263429 to asan and msan. The other sanitizers don't have backend passes that rely on value names. Avoid paying the compile time cost of names there. llvm-svn: 263541 --- clang/lib/Frontend/CompilerInvocation.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'clang/lib/Frontend/CompilerInvocation.cpp') diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index c212794..d264361 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2154,10 +2154,12 @@ bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res, Res.getLangOpts()->ObjCExceptions = 1; } - // FIXME: Override value name discarding when sanitizers are used because the + // FIXME: Override value name discarding when asan or msan is used because the // backend passes depend on the name of the alloca in order to print out // names. - Res.getCodeGenOpts().DiscardValueNames &= Res.getLangOpts()->Sanitize.empty(); + Res.getCodeGenOpts().DiscardValueNames &= + !Res.getLangOpts()->Sanitize.has(SanitizerKind::Address) && + !Res.getLangOpts()->Sanitize.has(SanitizerKind::Memory); // FIXME: ParsePreprocessorArgs uses the FileManager to read the contents of // PCH file and find the original header name. Remove the need to do that in -- cgit v1.1