Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit 650c605

Browse files
author
Fariborz Jahanian
committed
ObjectiveC arc: minor refactoring in my last patch
to avoid future false positives. // rdar://14569171 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187509 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 2651b7a commit 650c605

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

Diff for: lib/Sema/SemaExpr.cpp

+5-2
Original file line numberDiff line numberDiff line change
@@ -4061,19 +4061,22 @@ bool Sema::GatherArgumentsForCall(SourceLocation CallLoc,
40614061
Param = FDecl->getParamDecl(i);
40624062

40634063
// Strip the unbridged-cast placeholder expression off, if applicable.
4064+
bool CFAudited = false;
40644065
if (Arg->getType() == Context.ARCUnbridgedCastTy &&
40654066
FDecl && FDecl->hasAttr<CFAuditedTransferAttr>() &&
40664067
(!Param || !Param->hasAttr<CFConsumedAttr>()))
40674068
Arg = stripARCUnbridgedCast(Arg);
4069+
else if (FDecl && FDecl->hasAttr<CFAuditedTransferAttr>() &&
4070+
(!Param || !Param->hasAttr<CFConsumedAttr>()))
4071+
CFAudited = true;
40684072

40694073
InitializedEntity Entity = Param ?
40704074
InitializedEntity::InitializeParameter(Context, Param, ProtoArgType)
40714075
: InitializedEntity::InitializeParameter(Context, ProtoArgType,
40724076
Proto->isArgConsumed(i));
40734077

40744078
// Remember that parameter belongs to a CF audited API.
4075-
if (FDecl && FDecl->hasAttr<CFAuditedTransferAttr>() &&
4076-
(!Param || !Param->hasAttr<CFConsumedAttr>()))
4079+
if (CFAudited)
40774080
Entity.setParameterCFAudited();
40784081

40794082
ExprResult ArgE = PerformCopyInitialization(Entity,

0 commit comments

Comments
 (0)