Index: lib/Transforms/Instrumentation/GCOVProfiling.cpp =================================================================== --- lib/Transforms/Instrumentation/GCOVProfiling.cpp +++ lib/Transforms/Instrumentation/GCOVProfiling.cpp @@ -325,9 +325,10 @@ class GCOVFunction : public GCOVRecord { public: GCOVFunction(const DISubprogram *SP, Function *F, raw_ostream *os, - uint32_t Ident, bool UseCfgChecksum, bool ExitBlockBeforeBody) + uint32_t Ident, bool UseCfgChecksum, bool ExitBlockBeforeBody, + bool FunctionNamesInData) : SP(SP), Ident(Ident), UseCfgChecksum(UseCfgChecksum), CfgChecksum(0), - ReturnBlock(1, os) { + FunctionNamesInData(FunctionNamesInData), ReturnBlock(1, os) { this->os = os; LLVM_DEBUG(dbgs() << "Function: " << getFunctionName(SP) << "\n"); @@ -388,7 +389,7 @@ write(FuncChecksum); if (UseCfgChecksum) write(CfgChecksum); - writeGCOVString(getFunctionName(SP)); + writeGCOVString(FunctionNamesInData ? getFunctionName(SP) : ""); writeGCOVString(SP->getFilename()); write(SP->getLine()); @@ -429,6 +430,7 @@ uint32_t FuncChecksum; bool UseCfgChecksum; uint32_t CfgChecksum; + bool FunctionNamesInData; DenseMap Blocks; GCOVBlock ReturnBlock; }; @@ -580,7 +582,8 @@ Funcs.push_back(make_unique(SP, &F, &out, FunctionIdent++, Options.UseCfgChecksum, - Options.ExitBlockBeforeBody)); + Options.ExitBlockBeforeBody, + Options.FunctionNamesInData)); GCOVFunction &Func = *Funcs.back(); for (auto &BB : F) {