0a0367a479e2ad204a97f87ed72f18209169b775 |
|
07-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
When transforming a dependent template specialization type, make sure to set the source-location information for the template arguments to the *transformed* source-location information, not the original source-location information. Fixes <rdar://problem/8986308> (a libc++ SFINAE issue) and the Boost.Polygon failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
61139c561f1a2c872209e32ff9143487cebf4324 |
|
30-Oct-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Preserve the template type parameter name when instantiating a templace. Fixes PR8489. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
71b87e4fa6bfb47107b099135864f9024004a4c9 |
|
31-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When template substitution into a template parameter reduces the level of that parameter, reduce the level by the number of active template argument lists rather than by 1. The number of active template argument lists is only > 1 when we have a class template partial specialization of a member template of a class template that itself is a member template of another class template. ... and Boost.MSM does this. Fixes PR7669. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
24bae92f08ae098cc50a602d8cf1273b423e14da |
|
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
When performing substitution of template arguments within the body of a template, be sure to include the template arguments from the injected-class-name. Fixes PR7587. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
a41a8c5972c2632247ae7913cf6ce65d45f7e702 |
|
22-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Whenever we complain about a failed initialization of a function or method parameter, provide a note pointing at the parameter itself so the user does not have to manually look for the function/method being called and match up parameters to arguments. For example, we now get: t.c:4:5: warning: incompatible pointer types passing 'long *' to parameter of type 'int *' [-pedantic] f(long_ptr); ^~~~~~~~ t.c:1:13: note: passing argument to parameter 'x' here void f(int *x); ^ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
8b013bdbf6474ed25d4017635cac851e51163c25 |
|
05-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Cope with finding the "instantiated" declaration when we are type-checking within a template definition. In this case, the "instantiated" declaration is just the declaration itself, found within the current instantiation. Fixes PR6239. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
aa0373107968aa7a26bf63f4a2673b8325b800af |
|
22-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Switch initialization of parameters in a call over to InitializationSequence (when a FunctionDecl is present). This required a few small fixes to initialization sequences: - Make sure to use the adjusted parameter type for initialization of function parameters. - Implement transparent union calling semantics in C git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
18ef5e28a9a2677f8b1dce1fb2638d66e0a1621f |
|
18-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Switch the initialization required by return statements over to the new InitializationSequence. This fixes some bugs (e.g., PR5808), changed some diagnostics, and caused more churn than expected. What's new: - InitializationSequence now has a "C conversion sequence" category and step kind, which falls back to - Changed the diagnostics for returns to always have the result type of the function first and the type of the expression second. CheckSingleAssignmentConstraints to peform checking in C. - Improved ASTs for initialization of return values. The ASTs now capture all of the temporaries we need to create, but intentionally do not bind the tempoary that is actually returned, so that it won't get destroyed twice. - Make sure to perform an (elidable!) copy of the class object that is returned from a class. - Fix copy elision in CodeGen to properly see through the subexpressions that occur with elidable copies. - Give "new" its own entity kind; as with return values and thrown objects, we don't bind the expression so we don't call a destructor for it. Note that, with this patch, I've broken returning move-only types in C++0x. We'll fix it later, when we tackle NRVO. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
a5728872c7702ddd09537c95bc3cbd20e1f2fb09 |
|
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
699ee52b2f383b62865013c3575510b520055811 |
|
20-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Teach FixOverloadedFunctionReference to build new expression ASTs rather than tweaking existing ASTs, since we were (*gasp*) stomping on ASTs within templates. I'm glad we found this little stick of TNT early... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
11a82401eaf3396dfb6466fa691a606204c8ddb0 |
|
09-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Slightly more testing for instantiation of non-type template parameters in nested templates, for my own sanity's sake git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
3cd4d1ece34d36317ec5352855d86e256cb6aa27 |
|
28-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Test instantiation of static data members that live within nested member templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
8320ad400439def135a75aa1dd0cafbcc1c9e5e0 |
|
28-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Test instantiations of out-of-line member definitions of nested templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
5ec178ff237d77e7acf5e747c19bf4f2de77a779 |
|
28-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix and test template instantiation for nested member templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
357bbd022c1d340c8e255aea7a684ddb34bc76e5 |
|
28-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Tighten up the conversion from a single-level template argument list 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
d6350aefb1396b299e199c7f1fe51bb40c12e75e |
|
28-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement template instantiation for member class templates. 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
d1102433214bd33b5bef5b493944292a1e82c2fb |
|
28-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Collect multiple levels of template arguments into a new type, MultiLevelTemplateArgumentList. This is a baby step toward instantiating member templates; no intended functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|
d60e105e6d1624da647ef7dd35a9cf6fad1b763e |
|
27-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement instantiation of the declarations of member function 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... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/instantiate-member-template.cpp
|