- Mar 21, 2009
-
-
Douglas Gregor authored
simplify the parsing and action interface for designated initializers. llvm-svn: 67415
-
- Mar 20, 2009
-
-
Douglas Gregor authored
variant of DiagnosticBuilder that emits the template instantiation backtrace when needed. llvm-svn: 67413
-
rdar://problem/6704086Ted Kremenek authored
allow non-literal format strings that are variables that (a) permanently bind to a string constant and (b) whose string constants are resolvable within the same translation unit. llvm-svn: 67404
-
Ted Kremenek authored
llvm-svn: 67394
-
-
Douglas Gregor authored
braces. We now build the appropriate fully-structured initializer list for such things. Per PR3618, verified that we're getting the right code generation. llvm-svn: 67353
-
- Mar 19, 2009
-
-
Douglas Gregor authored
there is a previous declaration marked "static". This fixes PR3645. llvm-svn: 67336
-
Douglas Gregor authored
llvm-svn: 67316
-
Fariborz Jahanian authored
dot-syntax expression after earching the list of protocols in the qualified-id, must keep searching the protocol list of each of the protocols in the list. llvm-svn: 67314
-
Douglas Gregor authored
F f; where F is a typedef of a function type, then the function "f" has a prototype. This is a slight tweak to Chris's suggested fix in PR3817. Fixes PR3817 and PR3840. llvm-svn: 67313
-
Douglas Gregor authored
dependent qualified-ids such as Fibonacci<N - 1>::value where N is a template parameter. These references are "unresolved" because the name is dependent and, therefore, cannot be resolved to a declaration node (as we would do for a DeclRefExpr or QualifiedDeclRefExpr). UnresolvedDeclRefExprs instantiate to DeclRefExprs, QualifiedDeclRefExprs, etc. Also, be a bit more careful about keeping only a single set of specializations for a class template, and instantiating from the definition of that template rather than a previous declaration. In general, we need a better solution for this for all TagDecls, because it's too easy to accidentally look at a declaration that isn't the definition. We can now process a simple Fibonacci computation described as a template metaprogram. llvm-svn: 67308
-
Douglas Gregor authored
QualifiedNameType and QualifiedDeclRefExpr. We now keep track of the exact nested-name-specifier spelling for a QualifiedDeclRefExpr, and use that spelling when printing ASTs. This fixes PR3493. llvm-svn: 67283
-
Douglas Gregor authored
specialization names. This way, we keep track of sugared types like std::vector<Real> I believe we are now using QualifiedNameTypes everywhere we can. Next step: QualifiedDeclRefExprs. llvm-svn: 67268
-
Douglas Gregor authored
qualified name, e.g., foo::x so that we retain the nested-name-specifier as written in the source code and can reproduce that qualified name when printing the types back (e.g., in diagnostics). This is PR3493, which won't be complete until finished the other tasks mentioned near the end of this commit. The parser's representation of nested-name-specifiers, CXXScopeSpec, is now a bit fatter, because it needs to contain the scopes that precede each '::' and keep track of whether the global scoping operator '::' was at the beginning. For example, we need to keep track of the leading '::', 'foo', and 'bar' in ::foo::bar::x The Action's CXXScopeTy * is no longer a DeclContext *. It's now the opaque version of the new NestedNameSpecifier, which contains a single component of a nested-name-specifier (either a DeclContext * or a Type *, bitmangled). The new sugar type QualifiedNameType composes a sequence of NestedNameSpecifiers with a representation of the type we're actually referring to. At present, we only build QualifiedNameType nodes within Sema::getTypeName. This will be extended to other type-constructing actions (e.g., ActOnClassTemplateId). Also on the way: QualifiedDeclRefExprs will also store a sequence of NestedNameSpecifiers, so that we can print out the property nested-name-specifier. I expect to also use this for handling dependent names like Fibonacci<I - 1>::value. llvm-svn: 67265
-
Gabor Greif authored
Use the instantiated expressions to build the ConditionalOperator. This addresses the second part of review feedback. llvm-svn: 67259
-
- Mar 18, 2009
-
-
Fariborz Jahanian authored
whose sema decl is at the translation unit. llvm-svn: 67249
-
Gabor Greif authored
llvm-svn: 67226
-
Gabor Greif authored
llvm-svn: 67216
-
Mike Stump authored
llvm-svn: 67214
-
Mike Stump authored
llvm-svn: 67205
-
Gabor Greif authored
llvm-svn: 67148
-
Gabor Greif authored
llvm-svn: 67145
-
Douglas Gregor authored
Type pointer. This allows our nested-name-specifiers to retain more information about the actual spelling (e.g., which typedef did the user name, or what exact template arguments were used in the template-id?). It will also allow us to have dependent nested-name-specifiers that don't map to any DeclContext. llvm-svn: 67140
-
Chris Lattner authored
no functionality change. llvm-svn: 67128
-
Chris Lattner authored
discovered as part of PR3817 llvm-svn: 67127
-
- Mar 17, 2009
-
-
Douglas Gregor authored
cleaner visitor framework. Added a visitor for declarations, which is quite similar to the visitor for statatements. llvm-svn: 67104
-
Douglas Gregor authored
quite as great as it sounds, because, while we can refer to the enumerator values outside the template, e.g., adder<long, 3, 4>::value we can't yet refer to them with dependent names, so no Fibonacci (yet). InstantiateClassTemplateSpecialization is getting messy; next commit will put it into a less-ugly state. llvm-svn: 67092
-
Anders Carlsson authored
llvm-svn: 67063
-
Douglas Gregor authored
IntegerLiterals during instantiation when we should be creating either a boolean literal (CXXBoolLiteralExpr) or a character literal (CharacterLiteral). llvm-svn: 67061
-
Sebastian Redl authored
Almost complete implementation of rvalue references. One bug, and a few unclear areas. Maybe Doug can shed some light on some of the fixmes. llvm-svn: 67059
-
Douglas Gregor authored
diagnostics. This builds on the patch that Sebastian committed and then revert. Major differences are: - We don't remove or use the current ".def" files. Instead, for now, we just make sure that we're building the ".inc" files. - Fixed CMake makefiles to run TableGen and build the ".inc" files when needed. Tested with both the Xcode and Makefile generators provided by CMake, so it should be solid. - Fixed normal makefiles to handle out-of-source builds that involve the ".inc" files. I'll send a separate patch to the list with Sebastian's changes that eliminate the use of the .def files. llvm-svn: 67058
-
- Mar 16, 2009
-
-
Anders Carlsson authored
llvm-svn: 67045
-
- Mar 15, 2009
-
-
Anders Carlsson authored
llvm-svn: 67032
-
Anders Carlsson authored
llvm-svn: 67031
-
Anders Carlsson authored
Add the ability to clone integer and string literals. Use it when instantiating template expressions. llvm-svn: 67030
-
Sebastian Redl authored
Convert a bunch of actions to smart pointers, and also bring PrintParserCallbacks a bit more in line with reality. llvm-svn: 67029
-
Douglas Gregor authored
llvm-svn: 67028
-
Anders Carlsson authored
llvm-svn: 67027
-
- Mar 14, 2009
-
-
Anders Carlsson authored
llvm-svn: 66997
-
Anders Carlsson authored
More static_assert work. Check that the assert expr is valid and show an error if it's false. Create the declaration and add it to the current context. llvm-svn: 66995
-