re PR c++/70635 (ICE on (and rejects) valid code on x86_64-linux-gnu: Segmentation fault (program cc1plus))
/cp 2016-04-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70635 * pt.c (resolve_typename_type): Fix typos in infinite recursion avoidance mechanism. /testsuite 2016-04-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/70635 * g++.dg/parse/pr70635.C: New. From-SVN: r234953
This commit is contained in:
parent
b3a77f2137
commit
545a4139d5
|
@ -1,3 +1,9 @@
|
|||
2016-04-13 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/70635
|
||||
* pt.c (resolve_typename_type): Fix typos in infinite recursion
|
||||
avoidance mechanism.
|
||||
|
||||
2016-04-13 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/70634
|
||||
|
|
|
@ -23595,9 +23595,9 @@ resolve_typename_type (tree type, bool only_current_p)
|
|||
{
|
||||
/* Ill-formed programs can cause infinite recursion here, so we
|
||||
must catch that. */
|
||||
TYPENAME_IS_RESOLVING_P (type) = 1;
|
||||
TYPENAME_IS_RESOLVING_P (result) = 1;
|
||||
result = resolve_typename_type (result, only_current_p);
|
||||
TYPENAME_IS_RESOLVING_P (type) = 0;
|
||||
TYPENAME_IS_RESOLVING_P (result) = 0;
|
||||
}
|
||||
|
||||
/* Qualify the resulting type. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2016-04-13 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/70635
|
||||
* g++.dg/parse/pr70635.C: New.
|
||||
|
||||
2016-04-13 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/70639
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
// PR c++/70635
|
||||
// { dg-options "-fpermissive -w" }
|
||||
|
||||
template < typename T >
|
||||
struct A
|
||||
{
|
||||
struct B;
|
||||
typedef typename B::type type;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
struct A < T >::B
|
||||
{
|
||||
typedef typename A < type >::type type; // { dg-error "type" }
|
||||
type Foo ();
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
typename A < T >::B::type
|
||||
A < T >::B::Foo ()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
template class A<int>;
|
Loading…
Reference in New Issue