2018-01-30 20:53:33 +01:00
|
|
|
#include "idioms.h"
|
|
|
|
#include <cstdarg>
|
|
|
|
#include <cstdio>
|
|
|
|
#include <cstdlib>
|
|
|
|
|
|
|
|
namespace Fortran {
|
|
|
|
|
2018-02-05 21:48:09 +01:00
|
|
|
[[noreturn]] void die(const char *msg, ...) {
|
2018-01-30 20:53:33 +01:00
|
|
|
va_list ap;
|
|
|
|
va_start(ap, msg);
|
|
|
|
std::fputs("\nfatal internal error: ", stderr);
|
|
|
|
std::vfprintf(stderr, msg, ap);
|
|
|
|
va_end(ap);
|
|
|
|
fputc('\n', stderr);
|
|
|
|
std::abort();
|
|
|
|
}
|
|
|
|
|
|
|
|
std::ostream &operator<<(std::ostream &o, const std::monostate &) {
|
|
|
|
return o << "(empty variant)";
|
|
|
|
}
|
|
|
|
} // namespace Fortran
|