arphaman added a comment.

Sorry for the delay.

In https://reviews.llvm.org/D49462#1166032, @rjmccall wrote:

> Hmm.  I think this is a reasonable change to make to the language.  Have you 
> investigated to see if this causes source-compatibility problems?


Yes, I tested this change on internal code base. There's an impact, but the 
impact is fairly minimal. The biggest issue is actually in some Swift overlay: 
https://github.com/apple/swift/blob/c275826a41aca8268719061636efc12717b8dae1/stdlib/public/SDK/Dispatch/Dispatch.mm#L36



================
Comment at: test/CodeGenObjC/forward-declare-protocol-gnu.m:6
 
-Protocol *getProtocol(void)
-{
-               return @protocol(P);
-}
+@interface I <P>
+@end
----------------
rjmccall wrote:
> Does this really not require a definition of `P`?  Ugh.  I wonder if that's 
> reasonable to fix, too.
Nope, we don't emit the protocol metadata for it. It might make sense to 
require the definition with the implementation?


================
Comment at: test/Parser/objc-cxx-keyword-identifiers.mm:22
+@protocol P2;
+@protocol delete // expected-error {{expected identifier; 'delete' is a 
keyword in Objective-C++}}
+@end
----------------
rjmccall wrote:
> Why did this test need to change?
We need to declare `delete` because it's used in a `@protocol` expression on 
line 63.


Repository:
  rC Clang

https://reviews.llvm.org/D49462



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

Reply via email to