Commit d198fc5a by Jason Merrill Committed by Jakub Jelinek

re PR c++/86706 (ICE in build_base_path, at cp/class.c:294)

	PR c++/86706
	* class.c (build_base_path): Use currently_open_class.

	* g++.dg/template/pr86706.C: New test.

From-SVN: r263293
parent 0b0c7dc6
2018-08-03 Jason Merrill <jason@redhat.com>
PR c++/86706
* class.c (build_base_path): Use currently_open_class.
2018-08-02 David Malcolm <dmalcolm@redhat.com>
* error.c (cxx_print_error_function): Duplicate "file" before
......
......@@ -278,6 +278,9 @@ build_base_path (enum tree_code code,
probe = TYPE_MAIN_VARIANT (TREE_TYPE (expr));
if (want_pointer)
probe = TYPE_MAIN_VARIANT (TREE_TYPE (probe));
if (dependent_type_p (probe))
if (tree open = currently_open_class (probe))
probe = open;
if (code == PLUS_EXPR
&& !SAME_BINFO_TYPE_P (BINFO_TYPE (d_binfo), probe))
......
2018-08-03 Jason Merrill <jason@redhat.com>
PR c++/86706
* g++.dg/template/pr86706.C: New test.
2018-08-03 Richard Sandiford <richard.sandiford@arm.com>
* gcc.dg/vect/bb-slp-over-widen-1.c: Expect AVG_FLOOR to be used
......@@ -9,13 +14,13 @@
2018-08-03 Martin Liska <mliska@suse.cz>
* gcc.dg/predict-1.c: Adjust scanned pattern to cover 2 digits.
* gcc.dg/predict-13.c:Likewise.
* gcc.dg/predict-3.c:Likewise.
* gcc.dg/predict-4.c:Likewise.
* gcc.dg/predict-5.c:Likewise.
* gcc.dg/predict-6.c:Likewise.
* gcc.dg/predict-9.c:Likewise.
* gfortran.dg/predict-1.f90:Likewise.
* gcc.dg/predict-13.c: Likewise.
* gcc.dg/predict-3.c: Likewise.
* gcc.dg/predict-4.c: Likewise.
* gcc.dg/predict-5.c: Likewise.
* gcc.dg/predict-6.c: Likewise.
* gcc.dg/predict-9.c: Likewise.
* gfortran.dg/predict-1.f90: Likewise.
2018-08-02 Richard Biener <rguenther@suse.de>
......@@ -11397,7 +11402,7 @@
2018-02-01 Marek Polacek <polacek@redhat.com>
PR c++/84125
* g++.dg/cpp1y/lambda-generic-84125.C:New test.
* g++.dg/cpp1y/lambda-generic-84125.C: New test.
2018-01-30 Jeff Law <law@redhat.com>
......
// PR c++/86706
// { dg-do compile }
class A { int b; };
template <class, typename>
class C : A { C (); static C *f; };
template <class T, typename U>
C<T, U> *C<T, U>::f;
template <class T, typename U>
C<T, U>::C ()
{
f->b;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment