Remove assertion in get_info_about_necessary_edges

2020-01-25  Feng Xue  <fxue@os.amperecomputing.com>

        PR ipa/93166
        * ipa-cp.c (get_info_about_necessary_edges): Remove value
        check assertion.

        PR ipa/93166
        * g++.dg/pr93166.C: New test.
This commit is contained in:
Feng Xue 2020-01-19 15:49:44 +08:00
parent 53d172975f
commit 98dd8c97e4
4 changed files with 219 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/93166
* ipa-cp.c (get_info_about_necessary_edges): Remove value
check assertion.
2020-01-24 Jeff Law <law@redhat.com>
PR tree-optimization/92788

View File

@ -4175,9 +4175,6 @@ get_info_about_necessary_edges (ipcp_value<valtype> *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);
}

View File

@ -1,3 +1,8 @@
2020-01-25 Feng Xue <fxue@os.amperecomputing.com>
PR ipa/93166
* g++.dg/pr93166.C: New test.
2020-01-25 Andrew Pinski <apinski@marvell.com>
* gcc.target/aarch64/vec_zeroextend.c: Fix for big-endian.

View File

@ -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 <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 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);
}