blob: 33e3fa787b92b64c8bb11bb4b1c87c62819f3527 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// { dg-do run }
// { dg-options "-fexceptions" }
#include <typeinfo>
#include <stdexcept>
class A {
public:
virtual void j () {}
};
class B : public A { };
void x (A& a) {
// These should all work.
const B& b2 = dynamic_cast<B&>(a);
const B& b3 = dynamic_cast<const B&>((const A&)a);
const B& b4 = dynamic_cast<const B&>(a);
}
int main() {
try {
B b;
x (b);
} catch (std::exception& e) {
// If we get a bad_cast, it is wrong.
return 1;
}
}
|