Fix PR 3677 [retain checker]: custom 'allocWithZone' methods should be allowed
to return an owning pointer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66934 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index 75a9f3d..b6c11c9 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -119,12 +119,15 @@
case 4:
// Methods starting with 'alloc' or contain 'copy' follow the
// create rule
- if ((AtBeginning && StringsEqualNoCase("alloc", s, len)) ||
- (C == NoConvention && StringsEqualNoCase("copy", s, len)))
+ if (C == NoConvention && StringsEqualNoCase("copy", s, len))
C = CreateRule;
else // Methods starting with 'init' follow the init rule.
if (AtBeginning && StringsEqualNoCase("init", s, len))
- C = InitRule;
+ C = InitRule;
+ break;
+ case 5:
+ if (AtBeginning && StringsEqualNoCase("alloc", s, len))
+ C = CreateRule;
break;
}