Calling through a member function pointer that points to a member function that
has been declared with __attribute((regparm(3))) silently generates incorrect
code.  This is true even if the member function pointer has been declared with
the regparm(3) attribute:

int ((__attribute((regparm(3))) FOO::*mfptr )(int));

STL has "functor" classes built upon member functions, which is where this
first popped up for me.

GCC4.2.1 on Linux-x86


-- 
           Summary: member-function pointers + regarm(3) == incorrect code
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bruce_pedersen at altera dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34468

Reply via email to