[cfe-commits] r44913 - /cfe/trunk/Parse/ParseDecl.cpp
Chris Lattner
sabre at nondot.org
Tue Dec 11 22:13:27 PST 2007
Author: lattner
Date: Wed Dec 12 00:13:27 2007
New Revision: 44913
URL: http://llvm.org/viewvc/llvm-project?rev=44913&view=rev
Log:
simplify some code.
Modified:
cfe/trunk/Parse/ParseDecl.cpp
Modified: cfe/trunk/Parse/ParseDecl.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/Parse/ParseDecl.cpp?rev=44913&r1=44912&r2=44913&view=diff
==============================================================================
--- cfe/trunk/Parse/ParseDecl.cpp (original)
+++ cfe/trunk/Parse/ParseDecl.cpp Wed Dec 12 00:13:27 2007
@@ -556,51 +556,33 @@
/// qualifier list and builds their bitmask representation in the input
/// argument.
void Parser::ParseObjcTypeQualifierList(ObjcDeclSpec &DS) {
- bool found = true;
- while (found) {
- found = false;
- if (Tok.is(tok::identifier)) {
- const IdentifierInfo *II = Tok.getIdentifierInfo();
- unsigned i;
- for (i = 0; i < objc_NumQuals; ++i) {
- if (II == ObjcTypeQuals[i]) {
- switch (i) {
- case objc_in:
- DS.setObjcDeclQualifier(ObjcDeclSpec::DQ_In);
- ConsumeToken();
- found = true;
- break;
- case objc_out:
- DS.setObjcDeclQualifier(ObjcDeclSpec::DQ_Out);
- ConsumeToken();
- found = true;
- break;
- case objc_inout:
- DS.setObjcDeclQualifier(ObjcDeclSpec::DQ_Inout);
- ConsumeToken();
- found = true;
- break;
- case objc_oneway:
- DS.setObjcDeclQualifier(ObjcDeclSpec::DQ_Oneway);
- ConsumeToken();
- found = true;
- break;
- case objc_bycopy:
- DS.setObjcDeclQualifier(ObjcDeclSpec::DQ_Bycopy);
- ConsumeToken();
- found = true;
- break;
- case objc_byref:
- DS.setObjcDeclQualifier(ObjcDeclSpec::DQ_Byref);
- ConsumeToken();
- found = true;
- break;
- }
- if (found)
- break;
- }
+ while (1) {
+ if (!Tok.is(tok::identifier))
+ return;
+
+ const IdentifierInfo *II = Tok.getIdentifierInfo();
+ for (unsigned i = 0; i != objc_NumQuals; ++i) {
+ if (II != ObjcTypeQuals[i])
+ continue;
+
+ ObjcDeclSpec::ObjcDeclQualifier Qual;
+ switch (i) {
+ default: assert(0 && "Unknown decl qualifier");
+ case objc_in: Qual = ObjcDeclSpec::DQ_In; break;
+ case objc_out: Qual = ObjcDeclSpec::DQ_Out; break;
+ case objc_inout: Qual = ObjcDeclSpec::DQ_Inout; break;
+ case objc_oneway: Qual = ObjcDeclSpec::DQ_Oneway; break;
+ case objc_bycopy: Qual = ObjcDeclSpec::DQ_Bycopy; break;
+ case objc_byref: Qual = ObjcDeclSpec::DQ_Byref; break;
}
+ DS.setObjcDeclQualifier(Qual);
+ ConsumeToken();
+ II = 0;
+ break;
}
+
+ // If this wasn't a recognized qualifier, bail out.
+ if (II) return;
}
}
More information about the cfe-commits
mailing list