Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Rename Action::TagKind to Action::TagUseKind, which removes both a misnomer | John McCall | 2009-07-31 | 1 | -1/+1 |
| | | | | | | and a name collision. llvm-svn: 77658 | ||||
* | Clean up the ActOnTag action, so that there is only a single entry | Douglas Gregor | 2009-07-23 | 1 | -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 Lattner | 2009-06-12 | 1 | -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 Carlsson | 2009-06-12 | 1 | -1/+2 |
| | | | | | | argument before the function has been declared. llvm-svn: 73234 | ||||
* | Use of DeclContext for objc's ivars. No functionality | Fariborz Jahanian | 2009-06-05 | 1 | -0/+1 |
| | | | | | | change. More to follow. llvm-svn: 72951 | ||||
* | ActOnReturnStmt should also take a FullExprArg. | Anders Carlsson | 2009-05-30 | 1 | -1/+1 |
| | | | | llvm-svn: 72641 | ||||
* | AddInitializerToDecl needs to take a full expression. | Anders Carlsson | 2009-05-30 | 1 | -1/+1 |
| | | | | llvm-svn: 72640 | ||||
* | If a declarator group declares a type, make sure to add that declaration | Eli Friedman | 2009-05-29 | 1 | -1/+2 |
| | | | | | | to the DeclGroup. llvm-svn: 72559 | ||||
* | When we parse a tag specifier, keep track of whether that tag | Douglas Gregor | 2009-05-28 | 1 | -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 Friedman | 2009-05-19 | 1 | -0/+829 |
files to lib/Frontend. llvm-svn: 72099 |