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

            Bug ID: 63512
           Summary: [5 Regression] ICE: error: virtual use of statement
                    not up-to-date
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org

~ % cat ParseDeclCXX.ii
extern "C" {
void __assert_fail ();
unsigned long strlen (const char *);
}
class A
{
  int Data;
  int Length;

public:
  A (const char *p1) : Data ()
  {
    p1 ? void() : __assert_fail ();
    Length = strlen (p1);
  }
};
enum TokenKind
{
  semi
};
class B
{
public:
  void m_fn1 ();
};
class C
{
  void m_fn2 (TokenKind, int, A);
  struct D
  {
    D (int);
    B Range;
  };
  int *m_fn3 (const int &, int &, int **);
};
int a, b;
int *
C::m_fn3 (const int &, int &, int **)
{
  D c (0);
  if (a)
    c.Range.m_fn1 ();
  m_fn2 (semi, 0, b ? "" : a ? "alias declaration" : "using declaration");
}

 ~ % g++ -c -O2 ParseDeclCXX.ii
ParseDeclCXX.ii: In member function ‘int* C::m_fn3(const int&, int&, int**)’:
ParseDeclCXX.ii:38:1: error: virtual use of statement not up-to-date
 C::m_fn3 (const int &, int &, int **)
 ^
# VUSE <.MEM_16>
_21 = 17;
ParseDeclCXX.ii:38:1: internal compiler error: verify_ssa failed
0x10bb6b0b verify_ssa(bool, bool)
        ../../gcc/gcc/tree-ssa.c:1055
0x1087664b execute_function_todo
        ../../gcc/gcc/passes.c:1758
0x10877087 do_per_function
        ../../gcc/gcc/passes.c:1478
0x1087734f execute_todo
        ../../gcc/gcc/passes.c:1808
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to