r215365 - Coverage mapping: emit mapping for cxx constructors that use microsoft's ABI

Alex L arphaman at gmail.com
Mon Aug 11 11:03:15 PDT 2014


The tests are at http://reviews.llvm.org/D4847.


2014-08-11 11:02 GMT-07:00 Chandler Carruth <chandlerc at google.com>:

> 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/2792a2a0/attachment.html>


More information about the cfe-commits mailing list