http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46224
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-10-29 14:18:21 UTC --- Comeau has a similar warning. Here's a slightly smaller testcase that should produce a warning: #include <cstddef> #include <new> void* operator new( std::size_t num_bytes, const char* ) throw (std::bad_alloc); struct Foo { Foo() { throw int(); } }; void f() { Foo* p = new(__FILE__) Foo(); }