]> granicus.if.org Git - clang/commitdiff
Simplify/cleanup r63219 (based on Chris review).
authorSteve Naroff <snaroff@apple.com>
Fri, 30 Jan 2009 14:23:32 +0000 (14:23 +0000)
committerSteve Naroff <snaroff@apple.com>
Fri, 30 Jan 2009 14:23:32 +0000 (14:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63393 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseDecl.cpp

index 7b6d8f818522e34a47ac7d5f291c64a98014ab6c..cc1e9970e9d1348d91adad63c8f530339be42097 100644 (file)
@@ -1993,25 +1993,13 @@ void Parser::ParseFunctionDeclarator(SourceLocation LParenLoc, Declarator &D,
   // Alternatively, this parameter list may be an identifier list form for a
   // K&R-style function:  void foo(a,b,c)
   if (!getLang().CPlusPlus && Tok.is(tok::identifier)) {
-
-    TypeTy *TypeRep = Actions.getTypeName(*Tok.getIdentifierInfo(), CurScope);
-    if (TypeRep) {
-      // This is a typename. Replace the current token in-place with an
-      // annotation type token.
-      Tok.setKind(tok::annot_typename);
-      Tok.setAnnotationValue(TypeRep);
-      Tok.setAnnotationEndLoc(Tok.getLocation());
-      // In case the tokens were cached, have Preprocessor replace
-      // them with the annotation token.
-      PP.AnnotateCachedTokens(Tok);
-    } else {
+    if (!TryAnnotateTypeOrScopeToken()) {
       // K&R identifier lists can't have typedefs as identifiers, per
       // C99 6.7.5.3p11.
       if (RequiresArg) {
         Diag(Tok, diag::err_argument_required_after_attribute);
         delete AttrList;
       }
-      
       // Identifier list.  Note that '(' identifier-list ')' is only allowed for
       // normal declarators, not for abstract-declarators.
       return ParseFunctionDeclaratorIdentifierList(LParenLoc, D);