https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78555
--- Comment #7 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Another testcase for sreal.c
markus@x4 ~ % cat test.ii
struct A {
A();
A(const A &);
};
struct B {
B(int);
};
template <class Predicate> struct C {
B super_t;
C(Predicate p1, int) : super_t(0), m_predicate(p1) {}
Predicate m_predicate;
};
template <class Predicate, class Iterator>
void make_filter_iterator(Predicate p1, Iterator) {
C<Predicate>(p1, 0);
}
main() {
A a;
auto p = [a] {};
make_filter_iterator(p, 0);
}
markus@x4 ~ % /var/tmp/gcc_ubsan/usr/local/bin/g++ -c -O2 test.ii
../../gcc/gcc/sreal.c:232:20: runtime error: left shift of negative value
-1744830464