arphaman added inline comments.

================
Comment at: lib/Sema/SemaDecl.cpp:10184
+         (!getLangOpts().ObjCAutoRefCount && getLangOpts().ObjCWeak &&
+          VDecl->getType().getObjCLifetime() != Qualifiers::OCL_Weak)) &&
         !Diags.isIgnored(diag::warn_arc_repeated_use_of_weak,
----------------
jordan_rose wrote:
> bkelley wrote:
> > jordan_rose wrote:
> > > This condition's getting complicated, and it shows up in a few places. 
> > > Would it make sense to factor it out?
> > What do you think about adding a member function like 
> > `hasMRCNonTrivialWeakObjCLifetime(const ASTContext &Context)` to QualType 
> > to factor out lines 10183-10184? We could use that in D31003, D31004, here, 
> > and D31007.
> I'm fine with it myself but I don't work on Clang very much anymore. Maybe 
> someone else can say whether it's actually a good idea.
> 
> (By the way, the conventional abbreviation for this mode is "MRR" for "Manual 
> Retain/Release", even though it's "ARC" and "Automated Reference Counting".)
Do you want to extract the out the entire

```
(!getLangOpts().ObjCAutoRefCount && getLangOpts().ObjCWeak &&
          VDecl->getType().getObjCLifetime() != Qualifiers::OCL_Weak)
```
?

It looks like the others patches use only `getLangOpts().ObjCWeak && 
Type.getObjCLifetime() != Qualifiers::OCL_Weak` so the use of 
`hasMRCNonTrivialWeakObjCLifetime` won't be equivalent to the original code in 
the other patches if you extract all code from lines 10183-10184.


================
Comment at: test/SemaObjC/arc-repeated-weak.mm:468
+// With -fobjc-weak, the cast below is allowed.
+#if __has_feature(objc_arc)
 // This used to crash in the constructor of WeakObjectProfileTy when a
----------------
NIT: You can keep the code in `foo1` active and just use the `#if` on the 
`expected-error`, like:

```
void foo1() {
  INTFPtrTy tmp = (INTFPtrTy)e1; 
#if __has_feature(objc_arc)
// expected-error@-2 {{cast of 'E' to 'INTFPtrTy' (aka 'INTF *') is disallowed 
with ARC}}
#endif
}
```


https://reviews.llvm.org/D31005



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to