From: Feng Xue Date: Sun, 19 Jan 2020 07:49:44 +0000 (+0800) Subject: Remove assertion in get_info_about_necessary_edges X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=98dd8c97e44ee8134cecf681045b715a8a73c7cd;p=gcc.git Remove assertion in get_info_about_necessary_edges 2020-01-25 Feng Xue PR ipa/93166 * ipa-cp.c (get_info_about_necessary_edges): Remove value check assertion. PR ipa/93166 * g++.dg/pr93166.C: New test. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f19fc44212..e35efd623e7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-01-25 Feng Xue + + PR ipa/93166 + * ipa-cp.c (get_info_about_necessary_edges): Remove value + check assertion. + 2020-01-24 Jeff Law PR tree-optimization/92788 diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index 17da1d8e8a7..e762abb896d 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -4175,9 +4175,6 @@ get_info_about_necessary_edges (ipcp_value *val, cgraph_node *dest, hot |= cs->maybe_hot_p (); if (cs->caller != dest) non_self_recursive = true; - else if (src->val) - gcc_assert (values_equal_for_ipcp_p (src->val->value, - val->value)); } cs = get_next_cgraph_edge_clone (cs); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ecf0a664ed8..67958396265 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-01-25 Feng Xue + + PR ipa/93166 + * g++.dg/pr93166.C: New test. + 2020-01-25 Andrew Pinski * gcc.target/aarch64/vec_zeroextend.c: Fix for big-endian. diff --git a/gcc/testsuite/g++.dg/pr93166.C b/gcc/testsuite/g++.dg/pr93166.C new file mode 100644 index 00000000000..e9234ce7a0c --- /dev/null +++ b/gcc/testsuite/g++.dg/pr93166.C @@ -0,0 +1,208 @@ +// { dg-do compile } +// { dg-options "-shared -flto -O2 -fPIC -fvisibility=hidden" } + +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 class QList { + union { + QListData p; + QListData::Data *d; + }; + +public: + ~QList(); +}; +class QStringList : QList {}; +template struct QScopedPointerDeleter; +class QObjectData; +template > +class QScopedPointer { +public: + ~QScopedPointer(); + QObjectData *d; +}; + +template struct FunctionPointer; +template +struct FunctionPointer { + typedef Obj Object; +}; + +class QObject { +public: + virtual ~QObject(); + virtual void disconnectNotify(); + template + void connect(typename FunctionPointer::Object *, Func1, + typename FunctionPointer::Object *, Func2); + QScopedPointer 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 data[]; +} b; +unsigned c[]{}; +void TreeView::qt_static_metacall(QObject *p1, QMetaObject::Call, int, + void **p4) { + static_cast(p1)->dropMimeData( + 0, 0, 0, *reinterpret_cast(p4)); +} +const QMetaObject TreeView::d{&d, b.data, c, qt_static_metacall}; +void TreeView::disableAction() { QMetaObject::activate(&d, nullptr); } +template 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 struct QTypedArrayData; +class QString { +public: + ~QString(); + QTypedArrayData *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 subFolders; + QList entries; + QList 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); +}