Commit 54e606f0 by Martin Jambor Committed by Martin Jambor

[PR 70965] Schedule extra rebuild_cgraph_edges

2016-11-25  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/70965
	* passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges.

gcc/testsuite/
	* g++.dg/pr70965.C: New test.

From-SVN: r242867
parent 2dbe91cf
2016-11-25 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/70965
* passes.def (pass_build_ssa_passes): Add pass_rebuild_cgraph_edges.
2016-11-24 James Greenahlgh <james.greenhalgh@arm.com>
PR target/78509
......@@ -56,6 +56,7 @@ along with GCC; see the file COPYING3. If not see
NEXT_PASS (pass_build_ssa_passes);
PUSH_INSERT_PASSES_WITHIN (pass_build_ssa_passes)
NEXT_PASS (pass_fixup_cfg);
NEXT_PASS (pass_rebuild_cgraph_edges);
NEXT_PASS (pass_build_ssa);
NEXT_PASS (pass_warn_nonnull_compare);
NEXT_PASS (pass_ubsan);
......
2016-11-25 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/70965
* g++.dg/pr70965.C: New test.
2016-11-25 Jakub Jelinek <jakub@redhat.com>
Andreas Schwab <schwab@linux-m68k.org>
......
/* { dg-do compile } */
/* { dg-options "-O2 -std=c++11" } */
struct A {};
struct B {};
struct C { using p = int *; template <typename> using ra = A; };
struct J : C { template <typename> struct K { typedef C::ra<int> o; }; };
template <typename> struct D
{
struct H : J::K<int>::o { H (J::p, A) : J::K<int>::o () {} };
H d;
D (const char *, const A &x = A ()) : d (0, x) {}
};
extern template class D<char>;
enum L { M };
struct F { virtual char *foo (); };
template <class> struct I : B { static int foo (int) {} };
struct G { typedef I<int> t; };
void foo (int) { G::t::foo (0); }
void bar (const D<char> &, const D<int> &, int, L);
void baz () try { foo (0); } catch (F &e) { bar (e.foo (), "", 0, M); }
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