Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/torture/pr51959.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 compile } // { dg-additional-options "-Wno-return-type" } namespace std { typedef __SIZE_TYPE__ size_t; } inline void* operator new(std::size_t, void* __p) throw() { return __p; } template <typename T> class QTypeInfo { }; enum { Q_COMPLEX_TYPE = 0, Q_PRIMITIVE_TYPE = 0x1, Q_STATIC_TYPE = 0, Q_MOVABLE_TYPE = 0x2, Q_DUMMY_TYPE = 0x4 }; template<typename Enum> class QFlags { int i; inline QFlags(Enum f) : i(f) { } }; class __attribute__((visibility("default"))) QSize { public: bool isEmpty() const; friend inline bool operator==(const QSize &, const QSize &); int wd; int ht; }; template<> class QTypeInfo<QSize > { public: enum { isComplex = (((Q_MOVABLE_TYPE) & Q_PRIMITIVE_TYPE) == 0), isStatic = (((Q_MOVABLE_TYPE) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), isLarge = (sizeof(QSize)>sizeof(void*)), isPointer = false, isDummy = (((Q_MOVABLE_TYPE) & Q_DUMMY_TYPE) != 0) }; }; class __attribute__((visibility("default"))) QBasicAtomicInt { public: inline bool operator!=(int value) const { } }; struct __attribute__((visibility("default"))) QListData { struct Data { QBasicAtomicInt ref; }; void **append(); }; template <typename T> class QList { struct Node { void *v; }; union { QListData p; QListData::Data *d; }; public: void append(const T &t); inline void push_back(const T &t) { append(t); } void node_construct(Node *n, const T &t); void node_destruct(Node *n); }; template <typename T> inline void QList<T>::node_construct(Node *n, const T &t) { if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) n->v = new T(t); else if (QTypeInfo<T>::isComplex) new (n) T(t); } template <typename T> inline void QList<T>::node_destruct(Node *n) { } template <typename T> void QList<T>::append(const T &t) { if (d->ref != 1) { try { } catch (...) { } if (QTypeInfo<T>::isLarge || QTypeInfo<T>::isStatic) { } else { Node *n, copy; node_construct(©, t); try { n = reinterpret_cast<Node *>(p.append());; } catch (...) { node_destruct(©); throw; } *n = copy; } } }; void virtual_hook(QSize sz, QList<QSize> &arg) { arg.push_back(sz); }