PR ipa/83619
* g++.dg/torture/pr83619.C: New testcase.
* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge
frequencies.
From-SVN: r256850
+2018-01-18 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/83619
+ * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge
+ frequencies.
+
2018-01-18 Boris Kolpackov <boris@codesynthesis.com>
PR other/70268
e->speculative = false;
e->caller->set_call_stmt_including_clones (e->call_stmt, new_stmt,
false);
+ e->count = gimple_bb (e->call_stmt)->count;
/* Fix edges for BUILT_IN_CHKP_BNDRET calls attached to the
processed call stmt. */
}
e2->speculative = false;
+ e2->count = gimple_bb (e2->call_stmt)->count;
ref->speculative = false;
ref->stmt = NULL;
/* Indirect edges are not both in the call site hash.
+2018-01-18 Jan Hubicka <hubicka@ucw.cz>
+
+ PR ipa/83619
+ * g++.dg/torture/pr83619.C: New testcase.
+
2018-01-18 Christophe Lyon <christophe.lyon@linaro.org>
* lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
--- /dev/null
+// { dg-do compile }
+int a;
+class d
+{
+public:
+ virtual unsigned c ();
+};
+class e;
+class i
+{
+ void h ();
+
+public:
+ void
+ operator= (e *f)
+ {
+ j<int>::c (f);
+ h ();
+ }
+ template <class> struct j
+ {
+ static void
+ c (e *g)
+ {
+ g->c ();
+ }
+ };
+};
+class k;
+class l
+{
+public:
+ l (int);
+ k *operator-> ();
+};
+class e : public d
+{
+};
+class m final : e
+{
+ unsigned c ();
+};
+class k
+{
+public:
+ virtual int o (e *) = 0;
+};
+class H : d, k
+{
+ int o (e *);
+ i n;
+};
+unsigned
+m::c ()
+{
+ l b = 0;
+ b->o (this);
+ return a;
+}
+int
+H::o (e *p)
+{
+ n = p;
+ return a;
+}
+
+