r215365 - Coverage mapping: emit mapping for cxx constructors that use microsoft's ABI
Chandler Carruth
chandlerc at google.com
Mon Aug 11 11:02:41 PDT 2014
Test case?
Please don't commit untested changes...
On Mon, Aug 11, 2014 at 10:45 AM, Alex Lorenz <arphaman at gmail.com> wrote:
> Author: arphaman
> Date: Mon Aug 11 12:45:49 2014
> New Revision: 215365
>
> URL: http://llvm.org/viewvc/llvm-project?rev=215365&view=rev
> Log:
> Coverage mapping: emit mapping for cxx constructors that use microsoft's
> ABI
>
> Modified:
> cfe/trunk/lib/CodeGen/CodeGenPGO.cpp
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenPGO.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenPGO.cpp?rev=215365&r1=215364&r2=215365&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenPGO.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenPGO.cpp Mon Aug 11 12:45:49 2014
> @@ -847,8 +847,13 @@ void CodeGenPGO::checkGlobalDecl(GlobalD
> // a class. Every function is instrumented, but we only want to provide
> // coverage for one of them. Because of that we only emit the coverage
> mapping
> // for the base constructor/destructor.
> + // For Microsoft's C++ ABI Clang emits only the complete constructor,
> + // therefore we have to emit the coverage mapping for it instead of the
> base
> + // one.
> + const CXXCtorType AcceptedCtor =
> + CGM.getTarget().getCXXABI().isMicrosoft()? Ctor_Complete :
> Ctor_Base;
> if ((isa<CXXConstructorDecl>(GD.getDecl()) &&
> - GD.getCtorType() != Ctor_Base) ||
> + GD.getCtorType() != AcceptedCtor) ||
> (isa<CXXDestructorDecl>(GD.getDecl()) &&
> GD.getDtorType() != Dtor_Base)) {
> SkipCoverageMapping = true;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140811/5d2930bb/attachment.html>
More information about the cfe-commits
mailing list