#include #include #include #include #include template T string_to_integer_type(const char* str) { bool neg = false; T val = 0; switch (*str) { case '-': neg = true; str++; break; case '+': str++; break; default: break; } while (isdigit(*str)) { val = (10 * val) + (*str++ - '0'); } return (neg ? -val : val); } extern "C" { __lc_noreturn void abort() { _Exit(-1); } int atoi(const char* str) { return string_to_integer_type(str); } long atol(const char* str) { return string_to_integer_type(str); } long long atoll(const char* str) { return string_to_integer_type(str); } char* getenv(const char*) { NOT_IMPLEMENTED("getenv"); } __lc_noreturn void _Exit(int status) { syscall(SYS_exit, status); __lc_unreachable(); } }