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