2 // { dg-additional-options "-fstack-protector-strong -fno-late-combine-instructions" }
3 // { dg-require-effective-target fstack_protector }
4 // { dg-require-effective-target c++11 }
9 Private() : moved_from (0) {}
13 __attribute__((noipa))
15 if (!d.moved_from && d.data[0] != 42)
18 __attribute__((noipa))
22 __attribute__((noipa))
23 QVariant(QVariant &other) : d(other.d) {}
24 QVariant(QVariant &&other) : d(other.d) {
26 other.d.moved_from = true;
28 QVariant &operator=(QVariant);
32 QVariant id (QVariant v) { return v; }
33 QVariant &QVariant::operator=(QVariant other)
39 template <typename T> struct QList {
41 struct const_iterator {
43 T &operator*() { return *ptr; }
44 __attribute__((noipa))
45 bool operator!=(const_iterator other) { return ptr != other.ptr; }
46 void operator++() { ptr++; }
48 __attribute__((noipa))
50 const_iterator begin() { return const_iterator { &d }; }
51 const_iterator end() { return const_iterator { &d }; }
53 struct QArrayDataPointer {
59 QArrayDataPointer null_qadp;
62 __attribute__((noipa))
63 QList<QString> split() const {
64 return QList<QString> {null_qadp};
66 __attribute__((noipa))
67 friend bool operator==(QString, QString) { return true; }
69 __attribute__((noipa))
70 QString(QArrayDataPointer dp) : d(dp) {}
74 __attribute__((noipa))
75 QString as_qstr (QVariant *v)
77 return QString (null_qadp);
80 int *getNode(const QString &tagContent) {
81 auto expr = tagContent.split();
82 auto blockName = expr.at();
83 auto loadedBlocksVariant = QVariant ();
84 QList<QVariant> blockVariantList;
85 for (auto &item : blockVariantList) {
86 auto blockNodeName = as_qstr (&item);
87 blockNodeName == blockName;
90 loadedBlocksVariant = QVariant();
96 QString foo(null_qadp);