Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/other/pr24623.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
/* This used to ICE due to a backend problem on s390. */ /* { dg-do compile } */ /* { dg-options "-O1" } */ class ReferenceCounted { public: virtual ~ ReferenceCounted () { } void decrementRefCount () const { if (--const_cast < unsigned int &>(_ref_count) == 0) { delete this; } } unsigned int _ref_count; }; template < class T > class RefCountPointer { public: RefCountPointer (T * p = 0):_p (p) { } RefCountPointer & operator= (const RefCountPointer < T > &o) { if (_p != o._p) { if (_p != 0) _p->decrementRefCount (); } static RefCountPointer a; return a; } ~RefCountPointer () { } T *_p; }; class Item:public ReferenceCounted { public: typedef RefCountPointer < const Item > Ptr; }; class AnyAtomicType:public Item { }; class StaticContext { }; class DynamicContext:public StaticContext { }; class SortableItem { SortableItem (); int m_bAscending:1; DynamicContext *m_context; AnyAtomicType::Ptr m_item; }; SortableItem::SortableItem () { m_context = __null; m_item = __null; }