Mark Mitchell wrote:
[...]
2. We should verify that the compiler accepts
extern "C" void abort(void);
namespace std {
extern "C" void abort(void) throw();
}
and:
namespace std {
extern "C" void abort(void) throw();
}
extern "C" void abort(void);
That's important in case a user explicitly declares the function, or
#include's the C header.
gcc 4.3.1 (the latest I have access to at the moment) does accept
this even though it's ill-formed according to [except.spec], p2:
If any declaration of a function has an exception-specification,
all declarations, including the definition and an explicit
specialization, of that function shall have an exception-
specification with the same set of type-ids.