[cfe-commits] r145928 - in /cfe/trunk: include/clang/Basic/DiagnosticIDs.h include/clang/Basic/DiagnosticParseKinds.td include/clang/Basic/DiagnosticSemaKinds.td include/clang/Parse/Parser.h include/clang/Sema/Sema.h lib/Parse/ParseObjc.cpp lib/Sema/SemaDeclObjC.cpp test/Index/cindex-on-invalid-usrs.m test/Parser/missing-end-2.m test/Parser/missing-end-3.m test/Parser/missing-end.m test/Parser/objc-missing-impl.m test/Parser/objc-quirks.m test/SemaObjC/missing-atend-metadata.m
Erik Verbruggen
erikjv at me.com
Wed Dec 7 11:08:02 PST 2011
On Dec 7, 2011, at 18:51, jahanian wrote:
>
> On Dec 6, 2011, at 9:51 AM, jahanian wrote:
>
>> Looks good. One question below.
>> On Dec 6, 2011, at 1:25 AM, Erik Verbruggen wrote:
>>
>>> Author: erikjv
>>> Date: Tue Dec 6 03:25:23 2011
>>> New Revision: 145928
>>>
>>>
>>> +void Parser::CheckNestedObjCContexts(SourceLocation AtLoc)
>>> +{
>>> + Sema::ObjCContainerKind ock = Actions.getObjCContainerKind();
>>> + if (ock == Sema::OCK_None)
>>> + return;
>>> +
>>> + Decl *Decl = Actions.ActOnAtEnd(getCurScope(), AtLoc);
>>> + Diag(AtLoc, diag::err_objc_missing_end)
>>> + << FixItHint::CreateInsertion(AtLoc, "@end\n");
>>> + if (Decl)
>>> + Diag(Decl->getLocStart(), diag::note_objc_container_start)
>>> + << (int) ock;
>>> + if (!PendingObjCImpDecl.empty())
>>> + PendingObjCImpDecl.pop_back();
>>
>> You are assuming that a missing '@end' is for an @implementation here.
>> Is this always the case, if so, you may want to assert on oak == OCK_Implementation
>> (or its category equivalent).
>
> Above patch causes a bogus error and a crash in this test case:
>
> @implementation I
> - Meth {}
> + Cls {}
> @protocol P;
> @end
Will fix it. One question: is it allowed to put that @protocol there? (Same for @class of course..) And is the following allowed?
@interface I {}
@protocol P;
@end
Or:
@protocol P
@class C;
@end
-- Erik.
>
> - Fariborz
>
>>
>> - fariborz
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list