Constant pointer to (member) function, indirect call
Mark Mitchell
mark@codesourcery.com
Wed Mar 2 16:39:00 GMT 2005
Helge Bahmann wrote:
> On Tue, 1 Mar 2005 Mark Mitchell wrote:
>
>>Helge Bahmann wrote:
>>
>>> 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.
>
>
> hm... it is not that my life depends on it, but is there a way to tell the
> compiler "this member function pointer will never point to a virtual
> function"? (especially because I know it is constant?)
No, there isn't.
--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com
(916) 791-8304
More information about the Gcc
mailing list