summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaTemplateInstantiateExpr.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Template instantiation for CXXExprWithTemporaries, which occurs whenDouglas Gregor2009-05-201-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 occurDouglas Gregor2009-05-201-3/+84
| | | | | | due to C++ type construction of the form T(a1, a2, ..., aN). llvm-svn: 72183
* Introduce a new expression type, CXXUnresolvedConstructExpr, toDouglas Gregor2009-05-201-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 stillDouglas Gregor2009-05-191-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 Gregor2009-05-191-3/+27
| | | | llvm-svn: 72144
* Template instantiation for __builtin_choose_expr.Douglas Gregor2009-05-191-0/+20
| | | | llvm-svn: 72143
* Ban the use of __builtin_types_compatible_p in C++; g++ doesn't support it,Douglas Gregor2009-05-191-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 Gregor2009-05-191-0/+48
| | | | llvm-svn: 72139
* Template instantiation for __builtin_types_compatible_p.Douglas Gregor2009-05-191-0/+21
| | | | llvm-svn: 72134
* Template instantiation for GNU statement expressionsDouglas Gregor2009-05-191-0/+12
| | | | llvm-svn: 72129
* Fix handling of the GNU "t ? : f" extension to the conditionalDouglas Gregor2009-05-191-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 Gregor2009-05-191-0/+7
| | | | llvm-svn: 72126
* Template instantiation for cast expressions.Douglas Gregor2009-05-191-0/+121
| | | | llvm-svn: 72119
* Template instantiation for call expressions.Douglas Gregor2009-05-191-9/+56
| | | | llvm-svn: 72081
* Template instantiation for array subscript expressions. This was farDouglas Gregor2009-05-191-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.hDouglas Gregor2009-05-181-0/+6
| | | | llvm-svn: 72058
* Implement instantiation of a few boring, simple expressions. I don't think ↵Sebastian Redl2009-05-161-2/+44
| | | | | | these are testable yet, though. llvm-svn: 71953
* Reflow some comments.Mike Stump2009-05-161-5/+5
| | | | llvm-svn: 71936
* Template instantiation for WhileStmt and CXXConditionDeclExpr.Douglas Gregor2009-05-151-0/+16
| | | | llvm-svn: 71896
* Allow instantiation of NULL expressions and statementsDouglas Gregor2009-05-151-0/+3
| | | | llvm-svn: 71889
* Instantiation support for 'this'Anders Carlsson2009-05-151-0/+12
| | | | llvm-svn: 71886
* Move statement instantiation into its own file. No functionality changeDouglas Gregor2009-05-151-132/+2
| | | | llvm-svn: 71872
* Instantiate return statements.Anders Carlsson2009-05-151-0/+14
| | | | llvm-svn: 71825
* Add NullStmt::Clone and use itAnders Carlsson2009-05-151-1/+1
| | | | llvm-svn: 71823
* Instantiate goto and label statements. (Very useful, I know)Anders Carlsson2009-05-151-0/+18
| | | | llvm-svn: 71822
* Implement template instantiation for DeclStmtDouglas Gregor2009-05-151-0/+23
| | | | llvm-svn: 71818
* Template instantiation for the NULL statement. Lame, I knowDouglas Gregor2009-05-141-0/+5
| | | | llvm-svn: 71816
* Introduce basic support for instantiating the definitions of memberDouglas Gregor2009-05-141-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 Gregor2009-05-141-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 Gregor2009-05-111-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 aDouglas Gregor2009-03-261-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 fileDouglas Gregor2009-03-251-0/+416
llvm-svn: 67660
OpenPOWER on IntegriCloud