(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
torture/
pr89698.C
/* { dg-do run } */

extern "C" void abort (void);

class A {
    virtual void f(){};
public:
    int x;
    A(int in): x(in) {};
};

class B: public A {
public:
    int y;
    B(int in):A(in-1), y(in) {};
};

int test(void)
{
  int res;
  B b(2);
  A* bp = &b;
  void* vp = dynamic_cast<void*>(bp);
  if (((A*)vp)->x == 1 && ((B*)vp)->y == 2)
    return 1;
  return 0;
}
int main() { if (test() != 1) abort (); return 0; }