5 class B : public A { };
12 a1 = dynamic_cast<A*>(b);
13 a1 = dynamic_cast<const A*>(b); // { dg-error "invalid" }
14 a1 = dynamic_cast<volatile A*>(b); // { dg-error "invalid" }
15 a1 = dynamic_cast<const volatile A*>(b); // { dg-error "invalid" }
18 a2 = dynamic_cast<A*>(b);
19 a2 = dynamic_cast<const A*>(b);
20 a2 = dynamic_cast<volatile A*>(b); // { dg-error "invalid" }
21 a2 = dynamic_cast<const volatile A*>(b); // { dg-error "invalid" }
24 a3 = dynamic_cast<A*>(b);
25 a3 = dynamic_cast<const A*>(b); // { dg-error "invalid" }
26 a3 = dynamic_cast<volatile A*>(b);
27 a3 = dynamic_cast<const volatile A*>(b); // { dg-error "invalid" }
30 a4 = dynamic_cast<A*>(b);
31 a4 = dynamic_cast<const A*>(b);
32 a4 = dynamic_cast<volatile A*>(b);
33 a4 = dynamic_cast<const volatile A*>(b);
40 A& a1 = dynamic_cast<A&>(b);
41 A& a2 = dynamic_cast<const A&>(b); // { dg-error "" }
42 A& a3 = dynamic_cast<volatile A&>(b); // { dg-error "" }
43 A& a4 = dynamic_cast<const volatile A&>(b); // { dg-error "" }
45 const A& ca1 = dynamic_cast<A&>(b);
46 const A& ca2 = dynamic_cast<const A&>(b);
47 const A& ca3 = dynamic_cast<volatile A&>(b); // { dg-error "" }
48 const A& ca4 = dynamic_cast<const volatile A&>(b); // { dg-error "" }
50 volatile A& va1 = dynamic_cast<A&>(b);
51 volatile A& va2 = dynamic_cast<const A&>(b); // { dg-error "" }
52 volatile A& va3 = dynamic_cast<volatile A&>(b);
53 volatile A& va4 = dynamic_cast<const volatile A&>(b);// { dg-error "" }
55 const volatile A& cva1 = dynamic_cast<A&>(b);
56 const volatile A& cva2 = dynamic_cast<const A&>(b);
57 const volatile A& cva3 = dynamic_cast<volatile A&>(b);
58 const volatile A& cva4 = dynamic_cast<const volatile A&>(b);