Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.old-deja/g++.mike/p7626.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { dg-do assemble } // prms-id: 7626 int fail; typedef unsigned int UINT; class CObject{}; class CCmdTarget : public CObject { }; typedef void (CCmdTarget::*AFX_PMSG)(void); struct AFX_MSGMAP_ENTRY { AFX_PMSG pfn; }; class CWnd : public CCmdTarget { public: void OnMyMsg() { fail = 1; } // If this one is called, something is wrong. static AFX_MSGMAP_ENTRY _messageEntries[]; }; typedef void (CWnd::*AFX_PMSGW)(void); class CDialog : public CWnd { public: void OnMyMsg() { } static AFX_MSGMAP_ENTRY _messageEntries[]; }; AFX_MSGMAP_ENTRY CDialog ::_messageEntries[] = { { (AFX_PMSG)(AFX_PMSGW)(void (CWnd::*)())&CDialog::OnMyMsg }, { (AFX_PMSG)0 } }; int main() { CDialog d; (d.*((CDialog::_messageEntries)[0]).pfn)(); // This should call CDialog::OnMyMsg return fail; }