The following passes bootstrap, but I don't know how much that really
means it helps. We are in fact able to devirtualize
// { dg-do compile }
// { dg-options "-O" }
// { dg-final { scan-assembler "xyzzy" } }
struct S { S(); virtual void xyzzy(); };
inline void foo(S *s) { s->xyzzy(); }
void bar() { S s; foo(&s); }
which is certainly more than we could do before.
For Objective-C, -fnext-runtime, we no longer make an indirect call
when not optimizing (we never did when optimizing, afaik), which I
suppose is what Zem was complaining about.
Can anyone think of anything they'd like to see METHOD_REF handle
which it doesn't now?