Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/opt/new1.C @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
line wrap: on
line source
// PR c++/39367 // { dg-options "-O" } class QScriptEnginePrivate; class QScriptClassInfo; namespace QScript { enum Type { InvalidType }; }; class QScriptValueImpl { public: inline QScriptValueImpl(); QScript::Type m_type; }; namespace QScript { namespace Ecma { class Core { public: inline QScriptEnginePrivate *engine() const { } inline QScriptClassInfo *classInfo() const { } QScriptValueImpl publicPrototype; }; class Boolean: public Core { void newBoolean(QScriptValueImpl *result, bool value = false); }; } template <typename T> class Buffer { public: inline void reserve(int num); inline void resize(int s); T *m_data; int m_capacity; int m_size; }; } template <typename T> void QScript::Buffer<T>::resize(int s) { if (m_capacity < s) reserve (s << 1); } template <typename T> void QScript::Buffer<T>::reserve(int x) { T *new_data = new T[m_capacity]; for (int i=0; i<m_size; ++i) new_data[i] = m_data[i]; } class QScriptObject { public: inline void reset(); QScript::Buffer<QScriptValueImpl> m_values; }; class QScriptEnginePrivate { public: inline QScriptObject *allocObject() { return 0; } inline void newObject(QScriptValueImpl *o, const QScriptValueImpl &proto, QScriptClassInfo *oc = 0); }; inline void QScriptEnginePrivate::newObject(QScriptValueImpl *o, const QScriptValueImpl &proto, QScriptClassInfo *oc) { QScriptObject *od = allocObject(); od->reset(); } inline QScriptValueImpl::QScriptValueImpl() : m_type(QScript::InvalidType) { } inline void QScriptObject::reset() { m_values.resize(0); } namespace QScript { namespace Ecma { void Boolean::newBoolean(QScriptValueImpl *result, bool value) { engine()->newObject(result, publicPrototype, classInfo()); } } }