https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70096

--- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> ---
This means we've been miscompiling such pointer-to-member-function copies long
before gcc 6, e.g.:

int read;

struct Holder {
    void foo () { read = data; }
    int data;
};

template <typename F>
void test1() {
    Holder h;
    h.data = 42;
    void (Holder::*fptr1) () = &Holder::foo;
    F Holder::*fptr2 = fptr1;
    (h.*fptr2)();
}


int main() {
    test1<void()>();
}

Reply via email to