diff options
author | Alex Lorenz <arphaman@gmail.com> | 2014-08-04 18:41:51 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2014-08-04 18:41:51 +0000 |
commit | ee02499a8fb64f9710b4543f2f46c5305dcb11fc (patch) | |
tree | 65514c3a36a4efeb1f20869ef94c33b107632ac2 /clang/lib/Driver/Tools.cpp | |
parent | 1193b5e272db7aa969380e95503b2512d3f17270 (diff) | |
download | bcm5719-llvm-ee02499a8fb64f9710b4543f2f46c5305dcb11fc.tar.gz bcm5719-llvm-ee02499a8fb64f9710b4543f2f46c5305dcb11fc.zip |
Add coverage mapping generation.
This patch adds the '-fcoverage-mapping' option which
allows clang to generate the coverage mapping information
that can be used to provide code coverage analysis using
the execution counts obtained from the instrumentation
based profiling (-fprofile-instr-generate).
llvm-svn: 214752
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r-- | clang/lib/Driver/Tools.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index fde63ca2019..9a205b3f5f4 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -3230,6 +3230,14 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, Args.hasArg(options::OPT_coverage)) CmdArgs.push_back("-femit-coverage-data"); + if (Args.hasArg(options::OPT_fcoverage_mapping) && + !Args.hasArg(options::OPT_fprofile_instr_generate)) + D.Diag(diag::err_drv_argument_only_allowed_with) + << "-fcoverage-mapping" << "-fprofile-instr-generate"; + + if (Args.hasArg(options::OPT_fcoverage_mapping)) + CmdArgs.push_back("-fcoverage-mapping"); + if (C.getArgs().hasArg(options::OPT_c) || C.getArgs().hasArg(options::OPT_S)) { if (Output.isFilename()) { |