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

Alex L arphaman at gmail.com
Mon Aug 11 11:09:45 PDT 2014


Sorry, let me try to explain.
I've commited a patch with the tests for coverage mapping on Friday with
all the tests that failed on some buildbots and all of the windows
buildbots.
I've resubmitted the patch today with all the tests, but 2 of the tests
need this commit to pass on windows.
All the tests are batched in a single patch because the code for coverage
mapping generation was commited before the tests, and all of those tests
are required for the generation.


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

> I don't understand.
>
> It is completely inappropriate to commit patches without the tests
> associated with them and batch all the tests into a single commit.
>
> What is going on here?
>
>
> On Mon, Aug 11, 2014 at 11:03 AM, Alex L <arphaman at gmail.com> wrote:
>
>> 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/823c0780/attachment.html>


More information about the cfe-commits mailing list