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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[9/10/11/12 Regression]     |[9/10/11/12 Regression]
                   |Hand in C++ code with       |Hang in C++ code with
                   |-fdevirtualize              |-fdevirtualize
      Known to fail|                            |10.3.0, 11.2.1, 7.5.0,
                   |                            |9.4.0
   Target Milestone|---                         |9.5
           Priority|P3                          |P2

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
BA::fill can be declared virtual without any change (it is implicitely so as
stated by the C++ standard it seems).

With GCC 11 and -O -fdevirtualize the program crashes and we see

void {anonymous}::BA::fill (struct BA * const this, struct Buf & buf)
{
  <bb 2> [count: 0]:
  __builtin_unreachable ();

which is from

a-t.C.083i.inline:t.C:16:14: optimized: folding virtual function call to 
__builtin_unreachable
a-t.C.083i.inline:Introduced new external node (void 
__builtin_unreachable()/1356).
a-t.C.083i.inline:t.C:17:14: optimized: folding virtual function call to 
__builtin_unreachable

Reply via email to