[Bug middle-end/81318] [8 regression] ICE in to_reg_br_prob_base, at profile-count.h:189

marxin at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Aug 11 12:02:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81318

--- Comment #19 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Markus Trippelsdorf from comment #8)
> Reduced Boost testcase:
> 
> struct A;
> struct B {
>   typedef A *type;
> };
> struct C {
>   B::type operator->();
> };
> struct D {
>   struct F {
>     F(void(void *), F *, void());
>   };
>   template <typename FunT> struct J : F {
>     FunT m_Function;
>     J(FunT) : F(m_fn1, 0, 0) {}
>     static void m_fn1(void *) { static_cast<J *>(0)->m_Function(); }
>   };
>   F *m_pImpl;
>   template <typename FunT> D(FunT p1) : m_pImpl(new J<FunT>(p1)) {}
> };
> struct A {
>   void m_fn2(D);
> };
> struct G {
>   void operator()() { throw; }
> };
> struct H {
>   void operator()() try { G()(); } catch (int) {
>   }
> };
> struct I {
>   void operator()() { H()(); }
> };
> void fn1() {
>   I a;
>   C b;
>   b->m_fn2(a);
> }

I'm testing patch for this PR. Markus what options are needed to spot ICE with
this test-case? Can't reproduce it.


More information about the Gcc-bugs mailing list