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

--- Comment #6 from Markus Trippelsdorf <markus at trippelsdorf dot de> 
2011-09-15 21:39:06 UTC ---
Still further reduction:

class Resource {
};
class BaseReference {
};
template < class interface_type >  class Reference:public BaseReference {
public:
     void *operator new (int nSize) {
     }
     Reference (const BaseReference & rRef);
};
class Exception;
class XInterface;
class OutputDevice:public Resource {
};
class Window:public OutputDevice {
};
class SystemWindow:public Window {
};
class Dialog:public SystemWindow {
};
class ModalDialog:public Dialog {
};
class TabPage:public Window {
};
class SvListEntry;
class SvLBoxEntry;
class  XPropertySet;
class  XFormsUIHelper1;
class  XSubmission;
struct ItemNode;
typedef Reference <XFormsUIHelper1> XFormsUIHelper1_ref;
typedef Reference <XPropertySet> XPropertySet_ref;
typedef Reference <XSubmission> XSubmission_ref;
class     XFormsPage: TabPage {
     XFormsUIHelper1_ref m_xUIHelper;
     bool DoToolBoxAction (int _nToolBoxID);
     SvLBoxEntry *AddEntry (const XPropertySet_ref &_rPropSet);
};
class AddSubmissionDialog: ModalDialog {
public:
     AddSubmissionDialog (Window *pParent, ItemNode *_pNode, const
XFormsUIHelper1_ref & _rUIHelper);
     XSubmission_ref &GetNewSubmission () const {
     }
};
bool XFormsPage::DoToolBoxAction (int _nToolBoxID)
{
 AddSubmissionDialog aDlg (this, __null, m_xUIHelper);
 Reference <XSubmission> xNewSubmission = aDlg.GetNewSubmission ();
 Reference < XPropertySet > xNewPropSet (xNewSubmission);
 SvLBoxEntry *pEntry = AddEntry (xNewPropSet);
}
SvLBoxEntry *XFormsPage::AddEntry (const Reference <XPropertySet> &_rEntry)
{
}

When one replaces the third from last line with:
SvLBoxEntry *XFormsPage::AddEntry (const XPropertySet_ref &_rEntry)
the ICE goes away...

Reply via email to