blob: a83ba6e0400c90c6621c5a3b3c2d1f147810486d [file] [log] [blame]
// PR ipa/93166
// { dg-lto-do link }
// { dg-lto-options { { -fPIC -O2 -flto -fvisibility=hidden } } }
// { dg-require-effective-target shared }
// { dg-require-effective-target fpic }
// { dg-extra-ld-options "-shared" }
// { dg-require-visibility "" }
namespace Qt {
enum DropAction {};
}
class QObject;
struct QMetaObject {
static void activate(const QMetaObject *, void *);
enum Call {};
struct {
const QMetaObject *superdata;
int *stringdata;
unsigned *data;
typedef void (*StaticMetacallFunction)(QObject *, Call, int, void **);
StaticMetacallFunction static_metacallrelatedMetaObjectsextradata;
} d;
};
class QString;
struct QListData {
struct Data;
Data *d;
};
template <typename> class QList {
union {
QListData p;
QListData::Data *d;
};
public:
~QList();
};
class QStringList : QList<QString> {};
template <typename> struct QScopedPointerDeleter;
class QObjectData;
template <typename, typename = QScopedPointerDeleter<QObjectData>>
class QScopedPointer {
public:
~QScopedPointer();
QObjectData *d;
};
template <typename> struct FunctionPointer;
template <class Obj, typename Ret, typename... Args>
struct FunctionPointer<Ret (Obj::*)(Args...)> {
typedef Obj Object;
};
class QObject {
public:
virtual ~QObject();
virtual void disconnectNotify();
template <typename Func1, typename Func2>
void connect(typename FunctionPointer<Func1>::Object *, Func1,
typename FunctionPointer<Func2>::Object *, Func2);
QScopedPointer<QObjectData> d_ptr;
};
class QPaintDevicePrivate;
class QPaintDevice {
public:
virtual ~QPaintDevice();
unsigned short painters;
QPaintDevicePrivate *reserved;
};
class QWidgetData;
class QWidget : public QObject, QPaintDevice {
QWidgetData *data;
};
class QFrame : public QWidget {};
class QMenu;
class QMimeData;
class QAbstractScrollArea : public QFrame {};
class QAbstractItemView : public QAbstractScrollArea {};
class QTreeView : public QAbstractItemView {};
class QTreeWidgetItem;
class QTreeWidget : public QTreeView {};
class QSignalMapper;
class KActionCollection;
class MenuFile;
class MenuFolderInfo;
class MenuEntryInfo;
class MenuSeparatorInfo;
class TreeView : QTreeWidget {
public:
static const QMetaObject d;
static void qt_static_metacall(QObject *, QMetaObject::Call, int, void **);
void disableAction();
bool dropMimeData(QTreeWidgetItem *, int, const QMimeData *, Qt::DropAction);
KActionCollection *m_ac;
QMenu *m_popupMenu;
int m_clipboard;
MenuFolderInfo *m_clipboardFolderInfo;
MenuEntryInfo *m_clipboardEntryInfo;
bool m_showHidden;
MenuFile *m_menuFile;
MenuFolderInfo *m_rootFolder;
MenuSeparatorInfo *m_separator;
QStringList m_newMenuIds;
QStringList m_newDirectoryList;
bool m_layoutDirty;
bool m_detailedMenuEntries;
bool m_detailedEntriesNamesFirst;
QStringList m_dropMimeTypes;
QSignalMapper *m_sortSignalMapper;
};
struct {
int n, data[];
} b;
unsigned c[]{};
void TreeView::qt_static_metacall(QObject *p1, QMetaObject::Call, int,
void **p4) {
static_cast<TreeView *>(p1)->dropMimeData(
0, 0, 0, *reinterpret_cast<Qt::DropAction *>(p4));
}
const QMetaObject TreeView::d{&d, b.data, c, qt_static_metacall};
void TreeView::disableAction() { QMetaObject::activate(&d, nullptr); }
template <typename> struct QScopedPointerDeleter;
class KXMLGUIClientPrivate;
class KXMLGUIClient {
public:
virtual void m_fn2();
KXMLGUIClient();
virtual ~KXMLGUIClient();
KXMLGUIClientPrivate *const d;
};
class KXMLGUIBuilderPrivate;
class KXMLGUIBuilder {
public:
virtual ~KXMLGUIBuilder();
virtual QStringList customTags();
KXMLGUIBuilderPrivate *const d;
};
class QMainWindow : public QWidget {};
class KMainWindowPrivate;
class KMainWindow : public QMainWindow {
KMainWindowPrivate *const k_ptr;
};
class KXmlGuiWindow : public KMainWindow,
KXMLGUIBuilder,
virtual KXMLGUIClient {
public:
KXmlGuiWindow();
};
class QSplitter;
class QAction;
class BasicTab;
class TreeView;
class KTreeWidgetSearchLine;
class KMenuEdit : public KXmlGuiWindow {
public:
KMenuEdit();
TreeView *m_tree;
BasicTab *m_basicTab;
QSplitter *m_splitter;
KTreeWidgetSearchLine *m_searchLine;
QAction *m_actionDelete;
bool m_showHidden;
};
int __attribute__((visibility("default"))) fn1() { new KMenuEdit; return 0; }
template <class> struct QTypedArrayData;
class QString {
public:
~QString();
QTypedArrayData<unsigned short> *d;
};
class MenuEntryInfo;
class MenuInfo {
public:
virtual ~MenuInfo();
};
class MenuFolderInfo : MenuInfo {
public:
void updateFullId(const QString &);
QString id;
QString fullId;
QString caption;
QString genericname;
QString comment;
QString directoryFile;
QString icon;
QList<MenuFolderInfo *> subFolders;
QList<MenuEntryInfo *> entries;
QList<MenuInfo *> initialLayout;
bool dirty;
bool hidden;
};
void MenuFolderInfo::updateFullId(const QString &) {
for (MenuFolderInfo *a = 0;;)
a->updateFullId(fullId);
}
MenuFolderInfo *a1, *b1;
bool TreeView::dropMimeData(QTreeWidgetItem *, int, const QMimeData *,
Qt::DropAction) {
b1->updateFullId(a1->fullId);
return true;
}
class BasicTab {
public:
void slotDisableAction();
};
KMenuEdit::KMenuEdit() {
connect(m_tree, &TreeView::disableAction, m_basicTab,
&BasicTab::slotDisableAction);
}