summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/PrintParserCallbacks.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Implement instantiation of AsmStmts (Crazy, I know)Anders Carlsson2010-01-241-1/+1
| | | | llvm-svn: 94361
* Keep track of the source locations for each protocol reference inDouglas Gregor2010-01-161-1/+3
| | | | | | | | Objective-C classes, protocol definitions, forward protocol declarations, and categories. This information isn't actually used yet; that's coming next. llvm-svn: 93636
* Fix warnings.Mike Stump2010-01-051-1/+2
| | | | llvm-svn: 92551
* Eliminate CXXConditionDeclExpr with extreme prejudice.Douglas Gregor2009-11-251-5/+10
| | | | | | | | | | | | | | | | | All statements that involve conditions can now hold on to a separate condition declaration (a VarDecl), and will use a DeclRefExpr referring to that VarDecl for the condition expression. ForStmts now have such a VarDecl (I'd missed those in previous commits). Also, since this change reworks the Action interface for if/while/switch/for, use FullExprArg for the full expressions in those expressions, to ensure that we're emitting Note that we are (still) not generating the right cleanups for condition variables in for statements. That will be a follow-on commit. llvm-svn: 89817
* Pass source locations of identifiers referenced by @class through ↵Ted Kremenek2009-11-171-1/+2
| | | | | | Action::ActOnForwardClassDeclaration(). llvm-svn: 89162
* Update prototype.Daniel Dunbar2009-09-111-3/+3
| | | | llvm-svn: 81510
* Remove tabs, and whitespace cleanups.Mike Stump2009-09-091-34/+33
| | | | llvm-svn: 81346
* Change ActOnReturnStmt to not take a FullExprArg. Instead, Sema will wrap ↵Anders Carlsson2009-08-181-1/+1
| | | | | | the return expr inside a CXXExprWithTemporaries if needed. llvm-svn: 79342
* AddInitializerToDecl can't take a FullExprArg. Make it take an ExprArg, and ↵Anders Carlsson2009-08-161-1/+1
| | | | | | create the CXXExprWithTemporaries before setting the initializer on the VarDecl. llvm-svn: 79176
* Take 2 on AltiVec-style vector initializers. Nate Begeman2009-08-101-2/+3
| | | | | | | | | | | | Fixes PR4704 problems Addresses Eli's patch feedback re: ugly cast code Updates all postfix operators to remove ParenListExprs. While this is awful, no better solution (say, in the parser) is obvious to me. Better solutions welcome. llvm-svn: 78621
* Revert r78535, it is causing a number of failures to build projects.Daniel Dunbar2009-08-101-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | --- Reverse-merging r78535 into '.': D test/Sema/altivec-init.c U include/clang/Basic/DiagnosticSemaKinds.td U include/clang/AST/Expr.h U include/clang/AST/StmtNodes.def U include/clang/Parse/Parser.h U include/clang/Parse/Action.h U tools/clang-cc/clang-cc.cpp U lib/Frontend/PrintParserCallbacks.cpp U lib/CodeGen/CGExprScalar.cpp U lib/Sema/SemaInit.cpp U lib/Sema/Sema.h U lib/Sema/SemaExpr.cpp U lib/Sema/SemaTemplateInstantiateExpr.cpp U lib/AST/StmtProfile.cpp U lib/AST/Expr.cpp U lib/AST/StmtPrinter.cpp U lib/Parse/ParseExpr.cpp U lib/Parse/ParseExprCXX.cpp llvm-svn: 78551
* AltiVec-style vector initializer syntax, vec4 a = (vec4)(a, b, c, d);Nate Begeman2009-08-091-2/+3
| | | | | | | | In addition to being defined by the AltiVec PIM, this is also the vector initializer syntax used by OpenCL, so that vector literals are compatible with macro arguments. llvm-svn: 78535
* Patch should implement packed enums - PR4098. Credit to Anders Johnsen.Edward O'Callaghan2009-08-081-1/+2
| | | | llvm-svn: 78471
* Support nested-name-specifiers for C++ member access expressions, e.g.,Douglas Gregor2009-08-061-1/+2
| | | | | | | | this->Base::foo from James Porter! llvm-svn: 78278
* Rename Action::TagKind to Action::TagUseKind, which removes both a misnomerJohn McCall2009-07-311-1/+1
| | | | | | and a name collision. llvm-svn: 77658
* Clean up the ActOnTag action, so that there is only a single entryDouglas Gregor2009-07-231-0/+1
| | | | | | | | | point that covers templates and non-templates. This should eliminate the flood of warnings I introduced yesterday. Removed the ActOnClassTemplate action, which is no longer used. llvm-svn: 76881
* add the location of the ')' in a do/while statement to DoStmt.Chris Lattner2009-06-121-1/+3
| | | | | | This fixes a source range problem reported by Olaf Krzikalla. llvm-svn: 73266
* It's an error to use a function declared in a class definition as a default ↵Anders Carlsson2009-06-121-1/+2
| | | | | | argument before the function has been declared. llvm-svn: 73234
* Use of DeclContext for objc's ivars. No functionalityFariborz Jahanian2009-06-051-0/+1
| | | | | | change. More to follow. llvm-svn: 72951
* ActOnReturnStmt should also take a FullExprArg.Anders Carlsson2009-05-301-1/+1
| | | | llvm-svn: 72641
* AddInitializerToDecl needs to take a full expression.Anders Carlsson2009-05-301-1/+1
| | | | llvm-svn: 72640
* If a declarator group declares a type, make sure to add that declaration Eli Friedman2009-05-291-1/+2
| | | | | | to the DeclGroup. llvm-svn: 72559
* When we parse a tag specifier, keep track of whether that tagDouglas Gregor2009-05-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | specifier resulted in the creation of a new TagDecl node, which happens either when the tag specifier was a definition or when the tag specifier was the first declaration of that tag type. This information has several uses, the first of which is implemented in this commit: 1) In C++, one is not allowed to define tag types within a type specifier (e.g., static_cast<struct S { int x; } *>(0) is ill-formed) or within the result or parameter types of a function. We now diagnose this. 2) We can extend DeclGroups to contain information about any tags that are declared/defined within the declaration specifiers of a variable, e.g., struct Point { int x, y, z; } p; This will help improve AST printing and template instantiation, among other things. 3) For C99, we can keep track of whether a tag type is defined within the type of a parameter, to properly cope with cases like, e.g., int bar(struct T2 { int x; } y) { struct T2 z; } We can also do similar things wherever there is a type specifier, e.g., to keep track of where the definition of S occurs in this legal C99 code: (struct S { int x, y; } *)0 llvm-svn: 72555
* Move clang-cc.h to lib/Frontend/Utils.h, and move the associated .cpp Eli Friedman2009-05-191-0/+829
files to lib/Frontend. llvm-svn: 72099
OpenPOWER on IntegriCloud