C++ ptrmemfun break if FUNCTION_BOUNDARY < 2 * BITS_PER_UNIT

Jim Wilson wilson@cygnus.com
Fri Apr 6 13:05:00 GMT 2001


In article < ork84ys5bq.fsf@guarana.lsd.ic.unicamp.br > you write:
>The C++ ABI v3 uses the least significant bit of the pfn to tell
>non-virtual from virtual functions.

There are also targets that use the low-order bit of the PC to determine
processor mode.  Two prominent examples are arm/thumb and mips/mips16.
If an address has the low bit set, then that means it is using the 16-bit
compressed instruction set instead of the normal 32-bit instruction set.

This is also a problem for word addressable machines.  In that case, all
bits of the address are significant, and there aren't any unused lower-bits
that can be used by the C++ front end.  There are several gcc ports to DSPs
that would have this problem.

Jim



More information about the Gcc mailing list