Author: fjahanian
Date: Wed Jun 24 12:00:18 2009
New Revision: 74080

URL: http://llvm.org/viewvc/llvm-project?rev=74080&view=rev
Log:
Fix a clang crash caused by incorrect user code.


Modified:
    cfe/trunk/lib/Parse/ParseObjc.cpp
    cfe/trunk/test/Parser/check-syntax-1.m

Modified: cfe/trunk/lib/Parse/ParseObjc.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Parse/ParseObjc.cpp?rev=74080&r1=74079&r2=74080&view=diff

==============================================================================
--- cfe/trunk/lib/Parse/ParseObjc.cpp (original)
+++ cfe/trunk/lib/Parse/ParseObjc.cpp Wed Jun 24 12:00:18 2009
@@ -771,10 +771,12 @@
   if (getLang().ObjC2 && Tok.is(tok::kw___attribute)) 
     MethodAttrs = ParseAttributes();
   
+  if (KeyIdents.size() == 0)
+    return DeclPtrTy();
   Selector Sel = PP.getSelectorTable().getSelector(KeyIdents.size(),
                                                    &KeyIdents[0]);
   return Actions.ActOnMethodDeclaration(mLoc, Tok.getLocation(),
-                                        mType, IDecl, DSRet, ReturnType, Sel, 
+                                        mType, IDecl, DSRet, ReturnType, Sel,
                                         &ArgInfos[0], CargNames, MethodAttrs,
                                         MethodImplKind, isVariadic);
 }

Modified: cfe/trunk/test/Parser/check-syntax-1.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/check-syntax-1.m?rev=74080&r1=74079&r2=74080&view=diff

==============================================================================
--- cfe/trunk/test/Parser/check-syntax-1.m (original)
+++ cfe/trunk/test/Parser/check-syntax-1.m Wed Jun 24 12:00:18 2009
@@ -2,3 +2,10 @@
 
 int @interface bla  ; // expected-error {{cannot combine with previous 'int' 
declaration specifier}}
 @end
+
+typedef float CGFloat;
+...@interface XNSNumber 
++ (XNSNumber *) numberWithCGFloat  : (CGFloat) float; // expected-error 
{{expected identifier}}  \
+                                                      // expected-error {{ 
expected ';' after method prototype}}
+...@end
+


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to