void (A::*function2)(void) throw()=&A::function2; (a.*function2)();
however for the call through pointer function2 gcc will always generate an indirect call, i386 assembly for example looks like:
Yes, it should be able to do so, but it's not. This is probably something that could be done via range propagation.
-- Mark Mitchell CodeSourcery, LLC [EMAIL PROTECTED] (916) 791-8304