Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Template instantiation for CXXExprWithTemporaries, which occurs when | Douglas Gregor | 2009-05-20 | 1 | -1/+13 | |
| | | | | | | | | | | temporaries are generated for some object-constructing expressions in templates that are not type-dependent. Also, be sure to introduce the variable from a CXXConditionDeclExpr into the set of instantiated local variables. llvm-svn: 72185 | |||||
* | Template instantiation for the various kinds of AST nodes that occur | Douglas Gregor | 2009-05-20 | 1 | -3/+84 | |
| | | | | | | due to C++ type construction of the form T(a1, a2, ..., aN). llvm-svn: 72183 | |||||
* | Introduce a new expression type, CXXUnresolvedConstructExpr, to | Douglas Gregor | 2009-05-20 | 1 | -0/+41 | |
| | | | | | | | | | | | | | | | | | | describe the construction of a value of a given type using function syntax, e.g., T(a1, a2, ..., aN) when the type or any of its arguments are type-dependent. In this case, we don't know what kind of type-construction this will be: it might construct a temporary of type 'T' (which might be a class or non-class type) or might perform a conversion to type 'T'. Also, implement printing of and template instantiation for this new expression type. Due to the change in Sema::ActOnCXXTypeConstructExpr, our existing tests cover template instantiation of this new expression node. llvm-svn: 72176 | |||||
* | Add FIXMEs for the remaining C and C++ expression types that still | Douglas Gregor | 2009-05-19 | 1 | -2/+24 | |
| | | | | | | | need template instantiation logic. Remove one FIXME by instantiating the callee in a non-type-dependent CXXOperatorCallExpr. llvm-svn: 72145 | |||||
* | Template instantiation for __builtin_va_arg. | Douglas Gregor | 2009-05-19 | 1 | -3/+27 | |
| | | | | llvm-svn: 72144 | |||||
* | Template instantiation for __builtin_choose_expr. | Douglas Gregor | 2009-05-19 | 1 | -0/+20 | |
| | | | | llvm-svn: 72143 | |||||
* | Ban the use of __builtin_types_compatible_p in C++; g++ doesn't support it, | Douglas Gregor | 2009-05-19 | 1 | -16/+2 | |
| | | | | | | and it isn't clear exactly what it's supposed to mean. Thanks Eli! llvm-svn: 72142 | |||||
* | Template instantiation for __builtin_shufflevector. | Douglas Gregor | 2009-05-19 | 1 | -0/+48 | |
| | | | | llvm-svn: 72139 | |||||
* | Template instantiation for __builtin_types_compatible_p. | Douglas Gregor | 2009-05-19 | 1 | -0/+21 | |
| | | | | llvm-svn: 72134 | |||||
* | Template instantiation for GNU statement expressions | Douglas Gregor | 2009-05-19 | 1 | -0/+12 | |
| | | | | llvm-svn: 72129 | |||||
* | Fix handling of the GNU "t ? : f" extension to the conditional | Douglas Gregor | 2009-05-19 | 1 | -8/+8 | |
| | | | | | | | operator in C++, and verify that template instantiation for the condition operator does the right thing. llvm-svn: 72127 | |||||
* | Template instantiation for compound assignment operators. | Douglas Gregor | 2009-05-19 | 1 | -0/+7 | |
| | | | | llvm-svn: 72126 | |||||
* | Template instantiation for cast expressions. | Douglas Gregor | 2009-05-19 | 1 | -0/+121 | |
| | | | | llvm-svn: 72119 | |||||
* | Template instantiation for call expressions. | Douglas Gregor | 2009-05-19 | 1 | -9/+56 | |
| | | | | llvm-svn: 72081 | |||||
* | Template instantiation for array subscript expressions. This was far | Douglas Gregor | 2009-05-19 | 1 | -0/+31 | |
| | | | | | | | easier than expected because of the limitation that subscript operators must be member functions. llvm-svn: 72076 | |||||
* | Template instantiation for imaginary literals, because they were next in Expr.h | Douglas Gregor | 2009-05-18 | 1 | -0/+6 | |
| | | | | llvm-svn: 72058 | |||||
* | Implement instantiation of a few boring, simple expressions. I don't think ↵ | Sebastian Redl | 2009-05-16 | 1 | -2/+44 | |
| | | | | | | these are testable yet, though. llvm-svn: 71953 | |||||
* | Reflow some comments. | Mike Stump | 2009-05-16 | 1 | -5/+5 | |
| | | | | llvm-svn: 71936 | |||||
* | Template instantiation for WhileStmt and CXXConditionDeclExpr. | Douglas Gregor | 2009-05-15 | 1 | -0/+16 | |
| | | | | llvm-svn: 71896 | |||||
* | Allow instantiation of NULL expressions and statements | Douglas Gregor | 2009-05-15 | 1 | -0/+3 | |
| | | | | llvm-svn: 71889 | |||||
* | Instantiation support for 'this' | Anders Carlsson | 2009-05-15 | 1 | -0/+12 | |
| | | | | llvm-svn: 71886 | |||||
* | Move statement instantiation into its own file. No functionality change | Douglas Gregor | 2009-05-15 | 1 | -132/+2 | |
| | | | | llvm-svn: 71872 | |||||
* | Instantiate return statements. | Anders Carlsson | 2009-05-15 | 1 | -0/+14 | |
| | | | | llvm-svn: 71825 | |||||
* | Add NullStmt::Clone and use it | Anders Carlsson | 2009-05-15 | 1 | -1/+1 | |
| | | | | llvm-svn: 71823 | |||||
* | Instantiate goto and label statements. (Very useful, I know) | Anders Carlsson | 2009-05-15 | 1 | -0/+18 | |
| | | | | llvm-svn: 71822 | |||||
* | Implement template instantiation for DeclStmt | Douglas Gregor | 2009-05-15 | 1 | -0/+23 | |
| | | | | llvm-svn: 71818 | |||||
* | Template instantiation for the NULL statement. Lame, I know | Douglas Gregor | 2009-05-14 | 1 | -0/+5 | |
| | | | | llvm-svn: 71816 | |||||
* | Introduce basic support for instantiating the definitions of member | Douglas Gregor | 2009-05-14 | 1 | -0/+70 | |
| | | | | | | | functions of class templates. Only compound statements and expression statements are currently implemented. llvm-svn: 71814 | |||||
* | Introduce a stack of instantiation scopes that are used to store the mapping ↵ | Douglas Gregor | 2009-05-14 | 1 | -0/+9 | |
| | | | | | | from variable declarations that occur within templates to their instantiated counterparts llvm-svn: 71799 | |||||
* | Encapsulate template arguments lists in a new class, | Douglas Gregor | 2009-05-11 | 1 | -12/+8 | |
| | | | | | | | | TemplateArgumentList. This avoids the need to pass around pointer/length pairs of template arguments lists, and will eventually make it easier to introduce member templates and variadic templates. llvm-svn: 71517 | |||||
* | Revamp our representation of C++ nested-name-specifiers. We now have a | Douglas Gregor | 2009-03-26 | 1 | -5/+9 | |
| | | | | | | | | | | | uniqued representation that should both save some memory and make it far easier to properly build canonical types for types involving dependent nested-name-specifiers, e.g., "typename T::Nested::type". This approach will greatly simplify the representation of CXXScopeSpec. That'll be next. llvm-svn: 67799 | |||||
* | Move template instantiation for expressions into a separate file | Douglas Gregor | 2009-03-25 | 1 | -0/+416 | |
llvm-svn: 67660 |