[PR 90939] Remove outdated assert in ipcp_bits_lattice::meet_with
2019-06-26 Martin Jambor <mjambor@suse.cz> PR ipa/90939 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. testsuite/ * g++.dg/lto/pr90939_[01].C: New test. From-SVN: r272689
This commit is contained in:
parent
1215a76ab5
commit
7867b61fa3
|
@ -1,3 +1,11 @@
|
|||
2019-06-26 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
Backport from mainline
|
||||
2019-06-25 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR ipa/90939
|
||||
* ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
|
||||
|
||||
2019-06-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
Backport from mainline
|
||||
|
|
|
@ -1070,7 +1070,6 @@ ipcp_bits_lattice::meet_with (ipcp_bits_lattice& other, unsigned precision,
|
|||
if (TREE_CODE_CLASS (code) == tcc_binary)
|
||||
{
|
||||
tree type = TREE_TYPE (operand);
|
||||
gcc_assert (INTEGRAL_TYPE_P (type));
|
||||
widest_int o_value, o_mask;
|
||||
get_value_and_mask (operand, &o_value, &o_mask);
|
||||
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2019-06-26 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
Backport from mainline
|
||||
2019-06-25 Martin Jambor <mjambor@suse.cz>
|
||||
|
||||
PR ipa/90939
|
||||
* g++.dg/lto/pr90939_[01].C: New test.
|
||||
|
||||
2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
|
||||
|
||||
Backport from mainline
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
// PR ipa/90939
|
||||
// { dg-lto-do link }
|
||||
// { dg-lto-options { { -flto -O3 } } }
|
||||
|
||||
|
||||
typedef char uint8_t;
|
||||
template <class T> class A {
|
||||
public:
|
||||
A(T *);
|
||||
};
|
||||
template <typename Derived, typename Base> const Derived &To(Base &p1) {
|
||||
return static_cast<const Derived &>(p1);
|
||||
}
|
||||
class H;
|
||||
template <typename, typename Base> const H *To(Base *p1) {
|
||||
return p1 ? &To<H>(*p1) : nullptr;
|
||||
}
|
||||
enum TextDirection : uint8_t;
|
||||
enum WritingMode : unsigned;
|
||||
class B {
|
||||
public:
|
||||
WritingMode m_fn1();
|
||||
};
|
||||
class C {
|
||||
public:
|
||||
int &m_fn2();
|
||||
};
|
||||
class D { double d;};
|
||||
class H : public D {};
|
||||
class F {
|
||||
public:
|
||||
F(C, A<const int>, B *, WritingMode, TextDirection);
|
||||
};
|
||||
|
||||
class G {
|
||||
public:
|
||||
C NGLayoutAlgorithm_node;
|
||||
B NGLayoutAlgorithm_space;
|
||||
TextDirection NGLayoutAlgorithm_direction;
|
||||
H NGLayoutAlgorithm_break_token;
|
||||
G(A<const int> p1) __attribute__((noinline))
|
||||
: break_token_(&NGLayoutAlgorithm_break_token),
|
||||
container_builder_(NGLayoutAlgorithm_node, p1, &NGLayoutAlgorithm_space,
|
||||
NGLayoutAlgorithm_space.m_fn1(),
|
||||
NGLayoutAlgorithm_direction) {}
|
||||
G(C p1, const H *) : G(&p1.m_fn2()) {}
|
||||
A<H> break_token_;
|
||||
F container_builder_;
|
||||
};
|
||||
|
||||
class I : G {
|
||||
public:
|
||||
I(const D *) __attribute__((noinline));
|
||||
};
|
||||
C a;
|
||||
I::I(const D *p1) : G(a, To<H>(p1)) {}
|
||||
|
||||
D gd[10];
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
I i(&(gd[argc%2]));
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
typedef char uint8_t;
|
||||
template <class T> class A {
|
||||
public:
|
||||
A(T *);
|
||||
};
|
||||
|
||||
enum TextDirection : uint8_t;
|
||||
enum WritingMode : unsigned;
|
||||
class B {
|
||||
public:
|
||||
WritingMode m_fn1();
|
||||
};
|
||||
class C {
|
||||
public:
|
||||
int &m_fn2();
|
||||
};
|
||||
|
||||
class F {
|
||||
public:
|
||||
F(C, A<const int>, B *, WritingMode, TextDirection);
|
||||
};
|
||||
class D { double d;};
|
||||
class H : public D {};
|
||||
|
||||
|
||||
|
||||
template <class T> A<T>::A(T*) {}
|
||||
|
||||
template class A<H>;
|
||||
template class A<int const>;
|
||||
|
||||
WritingMode __attribute__((noipa))
|
||||
B::m_fn1()
|
||||
{
|
||||
return (WritingMode) 0;
|
||||
}
|
||||
|
||||
int gi;
|
||||
int & __attribute__((noipa))
|
||||
C::m_fn2 ()
|
||||
{
|
||||
return gi;
|
||||
}
|
||||
|
||||
__attribute__((noipa)) F::F(C, A<const int>, B *, WritingMode, TextDirection) {}
|
Loading…
Reference in New Issue