Date: Sat, 26 Jan 2013 17:10:01 GMT From: Eitan Adler <lists@eitanadler.com> To: freebsd-standards@FreeBSD.org Subject: Re: standards/175453: Catching C std::bad_cast doesn't work in FreeBSD 9.1 Message-ID: <201301261710.r0QHA11J003897@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR standards/175453; it has been noted by GNATS.
From: Eitan Adler <lists@eitanadler.com>
To: bug-followup@freebsd.org, hongli@phusion.nl
Cc:
Subject: Re: standards/175453: Catching C std::bad_cast doesn't work in
FreeBSD 9.1
Date: Sat, 26 Jan 2013 12:07:14 -0500
This bug is probably well understood by now, but here is a minimal
testcase for it (no includes, as few C++ features as possible):
extern "C++" {
namespace std {
class exception {
const char* name() const {
}
};
class bad_cast : public exception {
};
}
}
class foo {
public: virtual ~foo() {
}
};
class bar: public foo {
public: int val;
bar(): val(123) {
}
};
static void cast_test(const foo &f) {
try {
const bar &b = dynamic_cast<const bar &>(f);
}
catch (const std::bad_cast &) {
}
}
int main() {
foo f;
cast_test(f);
}
--
Eitan Adler
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201301261710.r0QHA11J003897>
