testcase:
struct s {};
struct const_mem_fun_t
{
  const_mem_fun_t();
  void operator()(const s* __p) const
    { return (__p->*_M_f)(); }
  void (s::*_M_f)() const;
};
const_mem_fun_t p1;
void test02(const s *a)
{
  p1(a);
}

Compile at -O1.  Use patch in PR 22368 to find this.

-- 
           Summary: C++ front-end produces mis-match types in MODIFY_EXPR
                    (pointer to member functions)
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pinskia at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
OtherBugsDependingO 22368
             nThis:


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

Reply via email to