Richard Smith
6cda8ee96f
Add a testcase and a FIXME for an accepts-invalid.
...
llvm-svn: 197280
2013-12-13 22:28:48 +00:00
Richard Smith
3c9198fce3
Detabify and fix formatting.
...
llvm-svn: 197279
2013-12-13 22:26:20 +00:00
Richard Smith
07cea1911a
Properly reenter multiple contexts when parsing a late-parsed function template
...
within a dependent context. Patch by Will Wilson (+clang-format)!
llvm-svn: 180702
2013-04-29 08:53:40 +00:00
Nico Weber
7b5a716f3d
Make explicit specializations at class scope work
...
for non-type template parameters in microsoft mode.
PR12709.
llvm-svn: 159147
2012-06-25 17:21:05 +00:00
Francois Pichet
127bea8f48
fix typo in test.
...
llvm-svn: 137592
2011-08-14 22:30:29 +00:00
Francois Pichet
00c7e6ceb1
Implement function template specialization at class scope extension in Microsoft mode. A new AST node is introduced: ClassScopeFunctionSpecialization. This node holds a FunctionDecl that is not yet specialized; then during the class template instantiation the ClassScopeFunctionSpecialization will spawn the actual function specialization.
...
Example:
template <class T>
class A {
public:
template <class U> void f(U p) { }
template <> void f(int p) { } // <== class scope specialization
};
This extension is necessary to parse MSVC standard C++ headers, MFC and ATL code.
BTW, with this feature in, clang can parse (-fsyntax-only) all the MSVC 2010 standard header files without any error.
llvm-svn: 137573
2011-08-14 03:52:19 +00:00