- Aug 29, 2009
-
-
Douglas Gregor authored
llvm-svn: 80397
-
- Aug 28, 2009
-
-
Douglas Gregor authored
member templates. llvm-svn: 80396
-
Douglas Gregor authored
llvm-svn: 80394
-
Douglas Gregor authored
to a multi-level template argument list by making it explicit. The forced auditing of callers found a bug in the instantiation of member classes inside member templates. I *love* static type systems. llvm-svn: 80391
-
Douglas Gregor authored
Remove the conversion from a multi-level template argument list back to a single template argument list. We no longer need this crutch llvm-svn: 80390
-
Douglas Gregor authored
When performing template instantiation of the definitions of member templates (or members thereof), we build a data structure containing the template arguments from each "level" of template instantiation. During template instantiation, we substitute all levels of template arguments simultaneously. llvm-svn: 80389
-
Anders Carlsson authored
llvm-svn: 80383
-
Fariborz Jahanian authored
method definition with labels. llvm-svn: 80381
-
Douglas Gregor authored
MultiLevelTemplateArgumentList. This is a baby step toward instantiating member templates; no intended functionality change yet. llvm-svn: 80380
-
Anders Carlsson authored
llvm-svn: 80377
-
Anders Carlsson authored
llvm-svn: 80374
-
Anders Carlsson authored
When doing overload resolution, expressions that are value dependent but not type dependent and of integral type should not be treated as null pointer constants. llvm-svn: 80369
-
Anders Carlsson authored
llvm-svn: 80368
-
Anders Carlsson authored
llvm-svn: 80366
-
Fariborz Jahanian authored
with class type conversion methods. WIP. llvm-svn: 80365
-
John McCall authored
declarations of same, introduce a single AST class and add appropriate bits (encoded in the namespace) for whether a decl is "real" or not. Much hackery about previously-declared / not-previously-declared, but it's essentially mandated by the standard that friends alter lookup, and this is at least fairly non-intrusive. Refactor the Sema methods specific to friends for cleaner flow and less nesting. Incidentally solve a few bugs, but I remain confident that we can put them back. llvm-svn: 80353
-
Anders Carlsson authored
llvm-svn: 80346
-
Anders Carlsson authored
llvm-svn: 80337
-
Anders Carlsson authored
llvm-svn: 80333
-
Anders Carlsson authored
llvm-svn: 80332
-
Douglas Gregor authored
class template specializations (when possible) and look into base classes. Thanks to Eli for the test case! FIXME -=1. llvm-svn: 80302
-
- Aug 27, 2009
-
-
Eli Friedman authored
cause any regressions. llvm-svn: 80277
-
Eli Friedman authored
llvm-svn: 80273
-
Eli Friedman authored
llvm-svn: 80272
-
Anders Carlsson authored
llvm-svn: 80261
-
Anders Carlsson authored
llvm-svn: 80260
-
Anders Carlsson authored
llvm-svn: 80258
-
Anders Carlsson authored
llvm-svn: 80256
-
Anders Carlsson authored
llvm-svn: 80255
-
Douglas Gregor authored
templates within class templates, producing a member function template of a class template specialization. If you can parse that, I'm sorry. Example: template<typename T> struct X { template<typename U> void f(T, U); }; When we instantiate X<int>, we now instantiate the declaration X<int>::f, which looks like this: template<typename U> void X<int>::f(int, U); The path this takes through TemplateDeclInstantiator::VisitCXXMethodDecl is convoluted and ugly, but I don't know how to improve it yet. I'm resting my hopes on the multi-level substitution required to instantiate definitions of nested templates, which may simplify this code as well. More testing to come... llvm-svn: 80252
-
Anders Carlsson authored
Add a OverloadResolutionFlags and start converting some of the overload methods over to using it instead of bools arguments. llvm-svn: 80248
-
Anders Carlsson authored
llvm-svn: 80211
-
Anders Carlsson authored
llvm-svn: 80209
-
Eli Friedman authored
llvm-svn: 80207
-
Anders Carlsson authored
Add a BuildCXXTemporaryObjectExpr and use it so default arguments will be instantiated correctly for temporary object expressions. llvm-svn: 80206
-
Anders Carlsson authored
In ActOnCXXTypeConstructExpr, check that the type is complete and non-abstract before creating any expressions. This assures that any templates are instantiated if necessary. llvm-svn: 80200
-
Anders Carlsson authored
llvm-svn: 80183
-
Anders Carlsson authored
llvm-svn: 80182
-
Fariborz Jahanian authored
llvm-svn: 80178
-
Douglas Gregor authored
Make sure to bump the reference count of the last element in the ParenListExpr representing the direct initializer of a declaration llvm-svn: 80177
-