+2018-10-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR middle-end/87574
+ * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on
+ the thunk when expanding to GIMPLE.
+
2018-10-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
* varasm.c (mergeable_string_section): Don't try to move zero-length
DECL_ARGUMENTS. In this case force_gimple_thunk is true. */
if (in_lto_p && !force_gimple_thunk)
get_untransformed_body ();
+
+ /* We need to force DECL_IGNORED_P when the thunk is created
+ after early debug was run. */
+ if (force_gimple_thunk)
+ DECL_IGNORED_P (thunk_fndecl) = 1;
+
a = DECL_ARGUMENTS (thunk_fndecl);
current_function_decl = thunk_fndecl;
+2018-10-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * g++.dg/other/pr87574.C: New test.
+
2018-10-10 Marek Polacek <polacek@redhat.com>
PR c++/87567 - constexpr rejects call to non-constexpr function.
--- /dev/null
+// PR middle-end/87574
+// Testcase by David Binderman <dcb314@hotmail.com>
+
+// { dg-do compile }
+// { dg-options "-O2 -g -Wno-return-type" }
+
+class a {
+public:
+ virtual ~a();
+};
+class c {
+public:
+ enum j {};
+ virtual j d() = 0;
+};
+class e : a, c {
+ j d();
+};
+class f;
+class g {
+public:
+ static g *h();
+ f *i();
+};
+class f {
+public:
+ template <class b> b *l(int);
+};
+c::j e::d() {}
+void m() {
+ for (int k;;)
+ g::h()->i()->l<c>(k)->d();
+}