Test please. - Fariborz On Nov 20, 2013, at 11:20 PM, Ted Kremenek <[email protected]> wrote:
> Author: kremenek > Date: Thu Nov 21 01:20:34 2013 > New Revision: 195322 > > URL: http://llvm.org/viewvc/llvm-project?rev=195322&view=rev > Log: > Refactor some of handleObjCBridgeAttr to make it more concise and the > diagnostic reusable. > > Modified: > cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td > cfe/trunk/lib/Sema/SemaDeclAttr.cpp > > Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=195322&r1=195321&r2=195322&view=diff > ============================================================================== > --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) > +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Thu Nov 21 01:20:34 > 2013 > @@ -2433,8 +2433,8 @@ def err_ns_bridged_not_interface : Error > "parameter of 'ns_bridged' attribute does not name an Objective-C class">; > > // objc_bridge attribute diagnostics. > -def err_objc_bridge_not_id : Error< > - "parameter of 'objc_bridge' attribute must be a single name of an > Objective-C class">; > +def err_objc_attr_not_id : Error< > + "parameter of %0 attribute must be a single name of an Objective-C > %select{class|protocol}1">; > def err_objc_cf_bridged_not_interface : Error< > "CF object of type %0 is bridged to '%1', which is not an Objective-C > class">; > def err_objc_ns_bridged_invalid_cfobject : Error< > > Modified: cfe/trunk/lib/Sema/SemaDeclAttr.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclAttr.cpp?rev=195322&r1=195321&r2=195322&view=diff > ============================================================================== > --- cfe/trunk/lib/Sema/SemaDeclAttr.cpp (original) > +++ cfe/trunk/lib/Sema/SemaDeclAttr.cpp Thu Nov 21 01:20:34 2013 > @@ -4347,19 +4347,18 @@ static void handleObjCBridgeAttr(Sema &S > : ExpectedStructOrUnion); > return; > } > - > - if (Attr.getNumArgs() != 1) { > - S.Diag(D->getLocStart(), diag::err_objc_bridge_not_id); > - return; > - } > - IdentifierLoc *Parm = Attr.isArgIdent(0) ? Attr.getArgAsIdent(0) : 0; > + > + IdentifierLoc *Parm = 0; > + if (Attr.getNumArgs() == 1) > + Parm = Attr.isArgIdent(0) ? Attr.getArgAsIdent(0) : 0; > + > if (!Parm) { > - S.Diag(D->getLocStart(), diag::err_objc_bridge_not_id); > + S.Diag(D->getLocStart(), diag::err_objc_attr_not_id) << Attr.getName() > << 0; > return; > } > > D->addAttr(::new (S.Context) > - ObjCBridgeAttr(Attr.getRange(), S.Context, Parm ? Parm->Ident : > 0, > + ObjCBridgeAttr(Attr.getRange(), S.Context, Parm->Ident, > Attr.getAttributeSpellingListIndex())); > } > > > > _______________________________________________ > 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
