2018-07-16 Martin Liska <mliska@suse.cz>
PR ipa/86529
* ipa-pure-const.c (malloc_candidate_p): Revert ::get
to ::get_create.
2018-07-16 Martin Liska <mliska@suse.cz>
PR ipa/86529
* g++.dg/ipa/pr86529.C: New test.
From-SVN: r262695
+2018-07-16 Martin Liska <mliska@suse.cz>
+
+ PR ipa/86529
+ * ipa-pure-const.c (malloc_candidate_p): Revert ::get
+ to ::get_create.
+
2017-07-16 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arcHS.md: Update ARCHS scheduling rules.
cgraph_edge *cs = node->get_edge (call_stmt);
if (cs)
{
- ipa_call_summary *es = ipa_call_summaries->get (cs);
- gcc_assert (es);
+ ipa_call_summary *es = ipa_call_summaries->get_create (cs);
es->is_return_callee_uncaptured = true;
}
}
+2018-07-16 Martin Liska <mliska@suse.cz>
+
+ PR ipa/86529
+ * g++.dg/ipa/pr86529.C: New test.
+
2018-07-16 Tom de Vries <tdevries@suse.de>
PR debug/86455
--- /dev/null
+// { dg-do compile }
+// { dg-options "-fipa-pure-const -std=c++11" }
+
+namespace std {
+class type_info {
+public:
+ bool operator==(type_info);
+};
+class c {
+public:
+ c(int) {}
+ type_info b;
+ virtual void *d() {
+ if (b == typeid(int))
+ return e();
+ return nullptr;
+ }
+ int *e() noexcept;
+};
+class h {
+public:
+ template <typename g, typename f> h(g, f j) { new c(j); }
+};
+class k {
+protected:
+ int n;
+ k() : i(0, n) {}
+ h i;
+};
+class F : k {
+ public:
+ F(int, int) {}
+ template <typename, typename f, typename...> friend F l(const f &);
+};
+template <typename, typename f, typename...> F l(const f &p1) { F x(int(), p1); return x; }
+template <typename> F m() { l<int>(int()); return F(0, 0); }
+class D {
+ F p;
+
+public:
+ D() : p(m<int>()) {}
+};
+} // namespace std
+std::D a;