summaryrefslogtreecommitdiffstats
path: root/clang/Sema/Sema.h
Commit message (Collapse)AuthorAgeFilesLines
...
* There is no need for the Action::TagType enum, use DeclSpec::TST instead.Chris Lattner2007-01-231-1/+1
| | | | llvm-svn: 39278
* Finish tag processing. Since it can be shared with C++ Classes and enums,Chris Lattner2007-01-231-4/+4
| | | | | | rename it to ParseTag. llvm-svn: 39277
* When parsing a struct/union tag, we need to know whether the tag is a useChris Lattner2007-01-231-1/+1
| | | | | | | or a definition/declaration of a tag. This is required to handle C99 6.7.2.3p11 properly. llvm-svn: 39274
* Make name lookup properly obey C namespaces, simplify decl construction ↵Chris Lattner2007-01-221-1/+5
| | | | | | byeliminating the 'next' pointer from the ctor, and add initial support forparsing struct/union tags. llvm-svn: 39266
* Next big step in function parsing: create decl objects for parameters,Chris Lattner2007-01-211-2/+5
| | | | | | | inserting them into the function body scope and registering them with the corresponding FunctionDecl. llvm-svn: 39253
* Add support for parsing and pretty printing const_cast, dynamic_cast,Chris Lattner2006-12-041-0/+7
| | | | | | reinterpret_cast, and static_cast. Patch by Bill! llvm-svn: 39247
* implement ParseParamDeclaratorType in the ast builderChris Lattner2006-12-021-0/+2
| | | | llvm-svn: 39231
* split the ParseFunctionDefinition action into two actions, one which isChris Lattner2006-11-211-3/+9
| | | | | | called before and one which is called after function definition parsing. llvm-svn: 39196
* Add support for C90 implicitly defined functions, e.g.:Chris Lattner2006-11-201-2/+8
| | | | | | | | int A() { return X(); } llvm-svn: 39194
* parse identifier expressions properly. This allows us diagnose this:Chris Lattner2006-11-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | typedef int X; int A() { return X; } int B() { return Y; } as: /Users/sabre/test.c:5:10: error: unexpected type name 'X': expected expression return X; ^ /Users/sabre/test.c:9:10: error: use of undeclared 'Y' value return Y; ^ llvm-svn: 39192
* when a typedef name is parsed as part of declspecs, remember the decl for theChris Lattner2006-11-201-1/+1
| | | | | | typedef. llvm-svn: 39188
* add an action method for declspecs without declarators, like "struct foo;".Chris Lattner2006-11-191-0/+4
| | | | llvm-svn: 39184
* build TypedefDecl objects when parsing typedefs.Chris Lattner2006-11-191-0/+3
| | | | | | Add a parsing fastpath for when we see typedef at the top-level. llvm-svn: 39182
* Parse and remember types enough that we can pretty print:Chris Lattner2006-11-191-0/+1
| | | | | | | | | | | | | | void foo(int X) { X = __alignof(int); X = sizeof(const int** restrict ** volatile*); } as: x = __alignof(int) x = sizeof(int const **restrict **volatile *) llvm-svn: 39181
* Build ASTs for the pointer qualifiers on declarators. This allows us toChris Lattner2006-11-121-2/+0
| | | | | | | | | | parse (and print) things like: int* const* restrict* const volatile*** etc. llvm-svn: 39173
* restructure code to build the framework for creating types from declarators.Chris Lattner2006-11-111-1/+11
| | | | llvm-svn: 39166
* introduce a new ASTContext class to hold long-lived ast nodes.Chris Lattner2006-11-101-3/+4
| | | | llvm-svn: 39161
* move the rest of the expr sema to SemaExpr.cpp and the decl processing stuffChris Lattner2006-11-101-3/+3
| | | | | | to SemaDecl.cpp llvm-svn: 39159
* move semantic analysis of break/continue out of the parser into the sema class.Chris Lattner2006-11-101-2/+7
| | | | llvm-svn: 39157
* rename ASTBuilder to SemaChris Lattner2006-11-091-10/+8
| | | | llvm-svn: 39153
* Change courses on how we do semantic analysis. Semantic analysisChris Lattner2006-11-091-5/+6
| | | | | | | | fundamentally requires having an AST around, so move all sema to the AST library. This is the first step, later steps will be needed to clean up libast. llvm-svn: 39150
* start factoring actions into two flavors: minimal and semantic actions.Chris Lattner2006-11-051-1/+1
| | | | llvm-svn: 39133
* build ast nodes and print goto/goto*/break/continue.Chris Lattner2006-11-051-0/+8
| | | | llvm-svn: 39121
* Add ast node support for case/default/label stmts.Chris Lattner2006-11-051-1/+7
| | | | llvm-svn: 39120
* implement AST node for switch stmtChris Lattner2006-11-041-1/+2
| | | | llvm-svn: 39119
* implement ast nodes for while and do loopsChris Lattner2006-11-041-0/+5
| | | | llvm-svn: 39116
* Add AST node, AST building, actions, and printing for 'for' stmts.Chris Lattner2006-11-041-0/+5
| | | | llvm-svn: 39113
* remove full locinfo AST nodes for now. They just clutter the implementationChris Lattner2006-11-041-8/+2
| | | | | | and should be implemented with an ASTBuilder subclass anyway. llvm-svn: 39107
* Export the ASTBuilder class from the AST module.Chris Lattner2006-11-031-0/+130
llvm-svn: 39095
OpenPOWER on IntegriCloud