Alex Lorenz <[email protected]> writes:
> 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;
There should be spaces around the ? here.
> if ((isa<CXXConstructorDecl>(GD.getDecl()) &&
> - GD.getCtorType() != Ctor_Base) ||
> + GD.getCtorType() != AcceptedCtor) ||
> (isa<CXXDestructorDecl>(GD.getDecl()) &&
> GD.getDtorType() != Dtor_Base)) {
> SkipCoverageMapping = true;
You should really commit the tests this is fixing along with the
change. It makes life much easier for people digging through history
later if code changes and tests are in the same commit.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits