Fix c++/67337 (segfault in mangle.c)

PR c++/67337
	* mangle.c (write_template_prefix): Guard against context==NULL.

From-SVN: r231203
This commit is contained in:
Markus Trippelsdorf 2015-12-02 19:57:55 +00:00 committed by Markus Trippelsdorf
parent 157bb85d48
commit e7fc41a776
3 changed files with 31 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-12-02 Markus Trippelsdorf <markus@trippelsdorf.de>
PR c++/67337
* mangle.c (write_template_prefix): Guard against context==NULL.
2015-12-02 Jason Merrill <jason@redhat.com>
* call.c (build_new_op_1): Don't fold arguments to

View File

@ -1145,7 +1145,7 @@ write_template_prefix (const tree node)
So, for the example above, `Outer<int>::Inner' is represented as a
substitution candidate by a TREE_LIST whose purpose is `Outer<int>'
and whose value is `Outer<T>::Inner<U>'. */
if (TYPE_P (context))
if (context && TYPE_P (context))
substitution = build_tree_list (context, templ);
else
substitution = templ;

View File

@ -0,0 +1,25 @@
template <class> class A
{
void m_fn1 (int *, int);
};
template <class> class B
{
public:
typedef int Type;
};
template <class> class C
{
public:
C (int);
template <template <class> class T> void m_fn2 (typename T<void>::Type);
};
template <>
void
A<int>::m_fn1 (int *, int)
{
C<int> a (0);
a.m_fn2<B> (0);
}