pt.c (tsubst, [...]): Check TYPE_BEING_DEFINED before calling complete_type_or_else.
* pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED before calling complete_type_or_else. From-SVN: r24958
This commit is contained in:
parent
1328d92f81
commit
5326f06d7f
|
@ -1,3 +1,8 @@
|
||||||
|
1999-02-01 Mark Mitchell <mark@markmitchell.com>
|
||||||
|
|
||||||
|
* pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED
|
||||||
|
before calling complete_type_or_else.
|
||||||
|
|
||||||
Mon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
Mon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||||
|
|
||||||
* input.c (inline): Don't define, its handled by system.h.
|
* input.c (inline): Don't define, its handled by system.h.
|
||||||
|
|
|
@ -6083,7 +6083,8 @@ tsubst (t, args, in_decl)
|
||||||
But, such constructs have already been resolved by this
|
But, such constructs have already been resolved by this
|
||||||
point, so here CTX really should have complete type, unless
|
point, so here CTX really should have complete type, unless
|
||||||
it's a partial instantiation. */
|
it's a partial instantiation. */
|
||||||
if (!uses_template_parms (ctx)
|
if (!uses_template_parms (ctx)
|
||||||
|
&& !TYPE_BEING_DEFINED (ctx)
|
||||||
&& !complete_type_or_else (ctx))
|
&& !complete_type_or_else (ctx))
|
||||||
return error_mark_node;
|
return error_mark_node;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
// Build don't link:
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct S1 {
|
||||||
|
friend bool f<>(const S1&);
|
||||||
|
typedef T X;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct S2 {
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct S2<S1<T> > {
|
||||||
|
typedef typename S1<T>::X Y;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
bool f(T);
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
typename S2<S1<T> >::Y
|
||||||
|
f(const S1<T>&);
|
||||||
|
|
||||||
|
template struct S1<int>;
|
Loading…
Reference in New Issue