aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Parse
AgeCommit message (Collapse)Author
2008-07-24Fix commentDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53986 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-21minor cleanup to the actions interface to pass around SmallVectorImpl insteadChris Lattner
of a specific smallvector size. Fix protocol lists to pass down proper location info, so we get diagnostics like this: t.m:3:35: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ^ instead of this: t.m:3:44: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever' @interface NSWhatever : NSObject <NSCopying> ^ Add a new IdentifierLocPair typedef which is just a pair<IdentifierInfo*, SourceLocation> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53883 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-21Added sema support for the nonnull attribute. Will add test cases soon.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53881 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-15Added parsing/sema support for __attribute__ ((IBOutlet)), a clang-specific ↵Ted Kremenek
attribute that the static analyzer will use to recognize what ivars are IBOutlets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53644 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-12Use of NextToken() makes ParseIdentifierStatement unnecessary.Argyrios Kyrtzidis
Simplify the parser by removing Parser::ParseIdentifierStatement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53520 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-09Simplify the parser a bit by looking at the next token without consuming it ↵Argyrios Kyrtzidis
(by Preprocessor::LookNext): -Remove ParseExpressionWithLeadingIdentifier and ParseAssignmentExprWithLeadingIdentifier. -Separate ParseLabeledStatement from ParseIdentifierStatement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53376 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-04Fix warningsSeo Sanghyeon
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53133 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-29Make ProcessDeclAttributes walk the declarator structure pulling Chris Lattner
decl attributes out of the various places they can hide. This makes us correctly reject things like this: t.c:2:22: error: mode attribute only supported for integer and floating-point types int **__attribute((mode(HI)))* i32; ^ because you can't make a pointer be HImode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52876 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26Make Declarator::getDeclSpec() return a const reference to avoidChris Lattner
cases where mutation can introduce bugs. Propagate around 'const'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52772 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26another const correctness bug with declspec.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52768 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-26fix const correctness of accessor.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52767 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-24Add parsing support for C++ classes.Argyrios Kyrtzidis
Note that Parser::ParseCXXMemberSpecification is temporarily disabled until the Sema support is in place. Once ParseCXXMemberSpecification is enabled, the Parser/cxx-class.cpp test will pass. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52694 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-24Move the namespace action declarations at the "C++ declarations" section.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52673 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-24Test commit: changed the forward declaration of FieldDeclarator from class ↵Cedric Venet
to struct to be coherent with its definition (DeclSpec.h) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52671 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-21add parser and sema support for the funny ObjC '@defs' thing.Chris Lattner
Patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52586 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-08implement the alias attirbute (in both Sema and Codegen)Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52092 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-02handle the full assignment-expression grammar when using an Chris Lattner
objc message send in an initializer expression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51882 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-27Implementation of gcc mode attribute; this is significant because Eli Friedman
it fixes PR2204. Not too much to say about the implementation; it works in a similar way to the vector size attribute. At some point, we need to modify the targets to provide information about the appropriate types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51577 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-06Patch to refactor setter/getter names of property attributes into SelectorFariborz Jahanian
(was IdentifierInfo * before). This will make method declartations whole lot easier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50747 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-05percolate @optional/@required protocols down to ASTs forFariborz Jahanian
properties declared in the protocol. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50662 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-02Lexicographically order enum declarations in AttributeList::Kind.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50577 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-01More ObjC2 property semantics work. Work in progress.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50508 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-27Parsing of namespaces:Argyrios Kyrtzidis
-NamespaceDecl for the AST -Checks for name clashes between namespaces and tag/normal declarations. This commit doesn't implement proper name lookup for namespaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50321 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-25initial support for recognizing __transparent_union__ attributesNuno Lopes
comments on the ML will follow git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50262 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-24Patch to diagnose inconsistancies between properties declared in current andFariborz Jahanian
its super class. This patch is incomplete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50228 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Continuation of work on ObjC2's properties.Fariborz Jahanian
Added iterators, methods to find property and categories. Use them in doing semantic analysis on property implementation declarations. Fixed typos. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-21Clean up handling of function redeclarationsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50021 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18OCUVector -> ExtVector, shorthand for extended vector, per feedback from Chris.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49942 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-18Initial work for property implementation declarations.Fariborz Jahanian
Mostly semantic checking in this patch. This is on going and incomplete. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49882 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14New AST representation for each objc2's property declaration.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49699 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-14Make Parser::getAccessSpecifierIfPresent const, since it does not modify the ↵Douglas Gregor
state git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49629 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-13This patch adds very basic support for parsing and type-checking classDouglas Gregor
inheritance in C++. It'll parse the base-specifier list, e.g., class D : public B1, virtual public B2 { }; and do some of the simpler semantic checks (B1 and B2 are classes; they aren't unions or incomplete types, etc). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49623 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-13Test commit: fix a typoDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49615 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-13This patch is just the easy part of the class names patch, whichChris Lattner
allows the parsing of "class" in addition to "struct" and "union" to declare a record. So this patch allows: class C { }; class C c1; But it does not contain the lookup bits, so this won't work yet: C c2; Patch by Doug Gregor! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49613 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-11AST generation for objc2's property declarations.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49565 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-11Minor changes per Chris L's review.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49539 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10Patch for:Fariborz Jahanian
1) objc ivar processing is split out of ActOnField into its own ActOnIvar method. 2) the new objc ivar action takes visibility info directly, eliminating AllVisibilities in ParseObjCClassInstanceVariables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49506 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10reduce the amount of 'C++ magic' this code depends on :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49489 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10refactor Parser::ParseStructDeclaration to return a vector of uninterpreted Chris Lattner
declarators. This allows the clients (C structs, objc classes, objc properties, [future] C++ classes) etc, to do custom processing before invoking an action. This has two benefits in the short term: 1) objc ivar processing should be split out of ActOnField into its own ActOn method. 2) the new objc ivar action can take visibility info directly, eliminating AllVisibilities in ParseObjCClassInstanceVariables. 3) objc properties can pass their own special sauce down to sema as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49468 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10Fix typo.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49464 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-08Add support for C++ default arguments, and rework Parse-Sema Chris Lattner
interaction for function parameters, fixing PR2046. Patch by Doug Gregor! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49369 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07add an example.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49309 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-06split parsing of identifier lists in function declarators out intoChris Lattner
their own method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49268 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-06split code for handling grouping parens in declarators from code thatChris Lattner
handles function argument parens in declarators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49265 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-06Use token lookahead to simplify some code that is rarely executed.Chris Lattner
Since it is rare, the cost is not significant and we enjoy the simplification. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49263 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-05Fix handling of implicit int, resolving PR2012 and reverting (andChris Lattner
subsuming) my patch for PR1999. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49251 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-02Two changes to Sema::LookupDecl() interface. Steve Naroff
(1) Remove IdLoc (it's never used). (2) Add a bool to enable/disable lazy builtin creaation (defaults to true). This enables us to use LookupDecl() in Sema::isTypeName(), which is also part of this commit. To make this work, I changed isTypeName() to be a non-const member function. I'm not happy with this, however I fiddled with making LookupDecl() and friends const and it got ugly pretty quickly. We can certainly add it back if/when someone has time to fiddle with it. For now, I thought this simplification was more important than retaining the const-ness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49087 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-13improve DeclStmt to be able to store SourceRange info correctly.Chris Lattner
Set the start of DeclStmt range. Right now the end is meaningless though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48330 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-10implement simple support for arbitrary token lookahead. Change the Chris Lattner
objc @try parser to use it, fixing a FIXME. Update the objc-try-catch-1.m file to pass now that we get more reasonable errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48129 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-07Add fastcall/stdcall attribute supportNate Begeman
Generate CallingConv::Fast when fastcall attribute is present git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48017 91177308-0d34-0410-b5e6-96231b3b80d8