This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
-fvtable-gc
- To: Jason Merrill <jason at redhat dot com>, mark at codesourcery dot com
- Subject: -fvtable-gc
- From: Richard Henderson <rth at redhat dot com>
- Date: Sun, 11 Feb 2001 20:15:52 -0800
- Cc: gcc at gcc dot gnu dot org
So I was attempting this afternoon to implement the thing properly,
i.e. with notes and calls into varasm.c instead of random asm hackery
in cp/foo.c. But I was defeated in my quest to figure out how to
differentiate method calls from normal calls, and member address
taking at all.
What is METHOD_CALL_EXPR if not for calling methods? If I have
struct F { virtual void foo(); };
void bar(F *f) { f->foo(); }
I get a CALL_EXPR. If I have
typedef void (F::*F_ptr)();
F_ptr baz() { return &F::foo; }
I get an OFFSET_REF, which isn't actually documented anywhere,
and I can't figure out what it means exactly.
r~