mirror of git://gcc.gnu.org/git/gcc.git
re PR c++/65333 (error: incomplete type used in nested name specifier)
PR c++/65333 DR 1558 * pt.c (dependent_type_p_r): Check both class and alias template args. From-SVN: r221328
This commit is contained in:
parent
c42345448f
commit
a4d66d7dc7
|
|
@ -1,3 +1,9 @@
|
||||||
|
2015-03-10 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
PR c++/65333
|
||||||
|
DR 1558
|
||||||
|
* pt.c (dependent_type_p_r): Check both class and alias template args.
|
||||||
|
|
||||||
2015-03-10 Jakub Jelinek <jakub@redhat.com>
|
2015-03-10 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR c/65120
|
PR c/65120
|
||||||
|
|
|
||||||
|
|
@ -20930,7 +20930,13 @@ dependent_type_p_r (tree type)
|
||||||
return true;
|
return true;
|
||||||
/* ... or any of the template arguments is a dependent type or
|
/* ... or any of the template arguments is a dependent type or
|
||||||
an expression that is type-dependent or value-dependent. */
|
an expression that is type-dependent or value-dependent. */
|
||||||
else if (TYPE_TEMPLATE_INFO (type)
|
else if (CLASS_TYPE_P (type) && CLASSTYPE_TEMPLATE_INFO (type)
|
||||||
|
&& (any_dependent_template_arguments_p
|
||||||
|
(INNERMOST_TEMPLATE_ARGS (CLASSTYPE_TI_ARGS (type)))))
|
||||||
|
return true;
|
||||||
|
/* For an alias template specialization, check the arguments both to the
|
||||||
|
class template and the alias template. */
|
||||||
|
else if (alias_template_specialization_p (type)
|
||||||
&& (any_dependent_template_arguments_p
|
&& (any_dependent_template_arguments_p
|
||||||
(INNERMOST_TEMPLATE_ARGS (TYPE_TI_ARGS (type)))))
|
(INNERMOST_TEMPLATE_ARGS (TYPE_TI_ARGS (type)))))
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
// PR c++/65333
|
||||||
|
// { dg-do compile { target c++11 } }
|
||||||
|
|
||||||
|
template <typename T, T... Values> struct A
|
||||||
|
{
|
||||||
|
using type = int;
|
||||||
|
template <type... Suffix> using array = A<type, Values..., Suffix...>;
|
||||||
|
void
|
||||||
|
m_fn1 ()
|
||||||
|
{
|
||||||
|
array<>::data;
|
||||||
|
}
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue