mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-02 06:40:25 +08:00
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:
parent
53d172975f
commit
98dd8c97e4
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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.
|
||||
|
208
gcc/testsuite/g++.dg/pr93166.C
Normal file
208
gcc/testsuite/g++.dg/pr93166.C
Normal 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);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user