diff options
author | Fangrui Song <maskray@google.com> | 2020-05-10 10:50:20 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-05-10 12:37:44 -0700 |
commit | 13a633b438b6500ecad9e4f936ebadf3411d0f44 (patch) | |
tree | fe835c02bb30eb52f4119de79a5e562f8bc37ceb /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | e4c454b065be3b884b09fe7c0043f4445bdbd585 (diff) | |
download | llvm-13a633b438b6500ecad9e4f936ebadf3411d0f44.zip llvm-13a633b438b6500ecad9e4f936ebadf3411d0f44.tar.gz llvm-13a633b438b6500ecad9e4f936ebadf3411d0f44.tar.bz2 |
[gcov] Delete CC1 option -coverage-no-function-names-in-data
rL144865 incorrectly wrote function names for GCOV_TAG_FUNCTION
(this might be part of the reasons the header says
"We emit files in a corrupt version of GCOV's "gcda" file format").
rL176173 and rL177475 realized the problem and introduced -coverage-no-function-names-in-data
to work around the issue. (However, the description is wrong.
libgcov never writes function names, even before GCC 4.2).
In reality, the linker command line has to look like:
clang --coverage -Xclang -coverage-version='407*' -Xclang -coverage-cfg-checksum -Xclang -coverage-no-function-names-in-data
Failing to pass -coverage-no-function-names-in-data can make gcov 4.7~7
either produce wrong results (for one gcov-4.9 program, I see "No executable lines")
or segfault (gcov-7).
(gcov-8 uses an incompatible format.)
This patch deletes -coverage-no-function-names-in-data and the related
function names support from libclang_rt.profile
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 01f0673..6a358f2 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1018,8 +1018,6 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, Opts.CoverageNotesFile = std::string(Args.getLastArgValue(OPT_coverage_notes_file)); Opts.CoverageExtraChecksum = Args.hasArg(OPT_coverage_cfg_checksum); - Opts.CoverageNoFunctionNamesInData = - Args.hasArg(OPT_coverage_no_function_names_in_data); Opts.ProfileFilterFiles = std::string(Args.getLastArgValue(OPT_fprofile_filter_files_EQ)); Opts.ProfileExcludeFiles = |