5a428206903750157e57a8006f1593435ec2f147 |
|
16-Aug-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for dependent contexts in alias templates. When we are parsing a type for an alias template, we are not entering the context, so we can't look into dependent classes. Make sure the parser handles this correctly. PR16904. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
4384712b3a0aedd7c68d6abdb0407850f7b46c8b |
|
20-Jul-2013 |
Larisse Voufo <lvoufo@google.com> |
FIXME fix: improving diagnostics for template arguments deduction of class templates and explicit specializations This patch essentially removes all the FIXMEs following calls to DeduceTemplateArguments() that want to keep track of deduction failure info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
ba037f2a0cd9bc5614813c3c9293e4e01436e4dd |
|
20-Jul-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix pack instantiation with function types. Make sure we correctly expand packs which expand to another pack in a function type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
10ec0e4935e5d2efab4ee2731ccb350330dc5b34 |
|
19-Jul-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Fix for template substitution with packs. When we see a pack, and replace it with a template argument which is also a pack, we want to use the pack pattern, not the expanded pack. The caller should take care of expanding the pack afterwards. Fixes PR16646. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
aa488ea287c219565b5169d50142947d1b63a6ca |
|
16-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
More for PR11848: a pack expansion type isn't necessarily type-dependent (its pattern might be an alias template which doesn't use its arguments). It's always instantiation-dependent, though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
d8672ef2d343a0dbfe838724fb2d9fb4efea6041 |
|
16-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Related to PR11848 and core-21989: switch ContainsUnexpandedParameterPack from being a property of a canonical type to being a property of the fully-sugared type. This should only make a difference in the case where an alias template ignores one of its parameters, and that parameter is an unexpanded parameter pack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
6098381c29c2693832aa81ef046cf21a49729436 |
|
09-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR13136: * When substituting a reference to a non-type template parameter pack where the corresponding argument is a pack expansion, transform into an expression which contains an unexpanded parameter pack rather than into an expression which contains a pack expansion. This causes the SubstNonTypeTemplateParmExpr to be inside the PackExpansionExpr, rather than outside, so the expression still looks like a pack expansion and can be deduced. * Teach MarkUsedTemplateParameters that we can deduce a reference to a template parameter if it's wrapped in a SubstNonTypeTemplateParmExpr (such nodes are added during alias template substitution). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
5a343d7856e5de04fd92b6192e94becddf541e3e |
|
08-Jul-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR13243: When deducing a non-type template parameter which is specified as an expression, skip over any SubstNonTypeTemplateParmExprs which alias templates may have inserted before checking for a DeclRefExpr referring to a non-type template parameter declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159909 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
d1bb4ae6cbc0f8bea4b329e040f58b18c03388e7 |
|
25-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
When we're substituting into a function parameter pack and expect to get a function parameter pack (but don't due to weird substitutions), complain. Fixes the last bit of PR11848. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
c0536c8294fc4453f0f1d1cf24a62bfc725fd492 |
|
25-Jan-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix PR11848: decree that an alias template contains an unexpanded parameter pack iff its substitution contains an unexpanded parameter pack. This has the effect that we now reject declarations such as this (which we used to crash when expanding): template<typename T> using Int = int; template<typename ...Ts> void f(Int<Ts> ...ints); The standard is inconsistent on how this case should be treated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
762bb9d0ad20320b9f97a841dce57ba5e8e48b07 |
|
14-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Update all tests other than Driver/std.cpp to use -std=c++11 rather than -std=c++0x. Patch by Ahmed Charles! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|
1804174e1591bf59118f317775b48edd0382c3f0 |
|
14-May-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR9908: Fix the broken fix for PR9902 to get the template argument lists in the right order. Also, don't reject alias templates in all ElaboratedTypes: some ElaboratedTypes do not correspond to elaborated-type-specifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131342 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/SemaTemplate/alias-templates.cpp
|