view gcc/testsuite/g++.dg/torture/pr89698.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

/* { 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; }