use C++11 noreturn attribute