Richard Smith
8f65806b35
Fix crash if a dependent template-id was assumed to be a type but instantiates
...
to a variable template specialization.
llvm-svn: 196337
2013-12-04 00:56:29 +00:00
Hans Wennborg
84fe12d1e9
Provide better diagnostic wording for initializers on static
...
data member definitions when the variable has an initializer
in its declaration.
For the following code:
struct S {
static const int x = 42;
};
const int S::x = 42;
This patch changes the diagnostic from:
a.cc:4:14: error: redefinition of 'x'
const int S::x = 42;
^
a.cc:2:20: note: previous definition is here
static const int x = 42;
^
to:
a.cc:4:18: error: static data member 'x' already has an initializer
const int S::x = 42;
^
a.cc:2:24: note: previous initialization is here
static const int x = 42;
^
Differential Revision: http://llvm-reviews.chandlerc.com/D2235
llvm-svn: 195306
2013-11-21 03:17:44 +00:00
Richard Smith
8809a0c95e
Variable templates: handle instantiation of static data member templates
...
appropriately, especially when they appear within class templates.
llvm-svn: 191548
2013-09-27 20:14:12 +00:00
Richard Smith
300e0c36a3
Implement restriction that a partial specialization must actually specialize
...
something, for variable templates.
llvm-svn: 191278
2013-09-24 04:49:23 +00:00
Richard Smith
7506e6bf25
Remove a bogus diagnostic preventing static data member templates from being
...
defined with no initializer.
llvm-svn: 190970
2013-09-18 23:09:24 +00:00
Richard Smith
785067eca7
If a variable template specialization with an incomplete array type is
...
referenced, try to instantiate its definition in order to complete the type.
llvm-svn: 190910
2013-09-18 01:35:26 +00:00
Larisse Voufo
8122b22adc
Add a constexpr functionality test for static data member templates.
...
llvm-svn: 188975
2013-08-22 01:05:27 +00:00
Larisse Voufo
72caf2bb6b
Refactor for clarity and simplicity.
...
llvm-svn: 188974
2013-08-22 00:59:14 +00:00
Larisse Voufo
4cda461ec4
Improve support for static data member templates. This revision still has at least one bug, as it does not respect the variable template specialization hierarchy well.
...
llvm-svn: 188969
2013-08-22 00:28:27 +00:00
Larisse Voufo
39a1e507ff
Started implementing variable templates. Top level declarations should be fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Static data member templates of class templates need particular attention...
...
llvm-svn: 187762
2013-08-06 01:03:05 +00:00