On Jun 17, 2011, at 2:39 PM, Douglas Gregor wrote: > > On Jun 17, 2011, at 2:23 PM, John McCall wrote: > >> Author: rjmccall >> Date: Fri Jun 17 16:23:37 2011 >> New Revision: 133295 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=133295&view=rev >> Log: >> As a hopefully temporary workaround for a header mistake, treat >> __bridge_retain as a synonym for __bridge_retained. > > I really hate to say it, but… we should probably have a hard error + Fix-It > for this mis-spelling, but not emit the error if we're in a system header. > Otherwise, this bug is likely to leak into user code and we'll *never* get > rid of the wrong spelling.
How about accepting it only in a system header ? -Argyrios > > - Doug > >> >> Modified: >> cfe/trunk/include/clang/Basic/TokenKinds.def >> cfe/trunk/lib/Basic/Targets.cpp >> cfe/trunk/lib/Parse/ParseExpr.cpp >> cfe/trunk/test/SemaObjC/arc-bridged-cast.m >> >> Modified: cfe/trunk/include/clang/Basic/TokenKinds.def >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/TokenKinds.def?rev=133295&r1=133294&r2=133295&view=diff >> ============================================================================== >> --- cfe/trunk/include/clang/Basic/TokenKinds.def (original) >> +++ cfe/trunk/include/clang/Basic/TokenKinds.def Fri Jun 17 16:23:37 2011 >> @@ -426,6 +426,7 @@ >> KEYWORD(__bridge , KEYARC) >> KEYWORD(__bridge_transfer , KEYARC) >> KEYWORD(__bridge_retained , KEYARC) >> +KEYWORD(__bridge_retain , KEYARC) >> >> // Alternate spelling for various tokens. There are GCC extensions in all >> // languages, but should not be disabled in strict conformance mode. >> >> Modified: cfe/trunk/lib/Basic/Targets.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=133295&r1=133294&r2=133295&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Basic/Targets.cpp (original) >> +++ cfe/trunk/lib/Basic/Targets.cpp Fri Jun 17 16:23:37 2011 >> @@ -104,6 +104,7 @@ >> Builder.defineMacro("__bridge", ""); >> Builder.defineMacro("__bridge_transfer", ""); >> Builder.defineMacro("__bridge_retained", ""); >> + Builder.defineMacro("__bridge_retain", ""); >> } >> >> if (Opts.Static) >> >> Modified: cfe/trunk/lib/Parse/ParseExpr.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseExpr.cpp?rev=133295&r1=133294&r2=133295&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Parse/ParseExpr.cpp (original) >> +++ cfe/trunk/lib/Parse/ParseExpr.cpp Fri Jun 17 16:23:37 2011 >> @@ -1780,7 +1780,8 @@ >> } else if (ExprType >= CompoundLiteral && >> (Tok.is(tok::kw___bridge) || >> Tok.is(tok::kw___bridge_transfer) || >> - Tok.is(tok::kw___bridge_retained))) { >> + Tok.is(tok::kw___bridge_retained) || >> + Tok.is(tok::kw___bridge_retain))) { // FIXME: temporary >> workaround >> // Parse an Objective-C ARC ownership cast expression. >> ObjCBridgeCastKind Kind; >> if (Tok.is(tok::kw___bridge)) >> >> Modified: cfe/trunk/test/SemaObjC/arc-bridged-cast.m >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/arc-bridged-cast.m?rev=133295&r1=133294&r2=133295&view=diff >> ============================================================================== >> --- cfe/trunk/test/SemaObjC/arc-bridged-cast.m (original) >> +++ cfe/trunk/test/SemaObjC/arc-bridged-cast.m Fri Jun 17 16:23:37 2011 >> @@ -27,7 +27,10 @@ >> CFTypeRef cf1 = (__bridge_retained CFTypeRef)CreateSomething(); >> CFStringRef cf2 = (__bridge_retained CFStringRef)CreateNSString(); >> CFTypeRef cf3 = (__bridge CFTypeRef)CreateSomething(); >> - CFStringRef cf4 = (__bridge CFStringRef)CreateNSString(); >> + CFStringRef cf4 = (__bridge CFStringRef)CreateNSString(); >> + >> + // rdar://problem/9629566 - temporary workaround >> + CFTypeRef cf5 = (__bridge_retain CFTypeRef)CreateSomething(); >> } >> >> void fixits() { >> >> >> _______________________________________________ >> cfe-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
