aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/src/exception_handling/abort.cpp
blob: e12e4cb0ea6ac284ff52692456138e13e1f45a34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "arch/exception_handling/panic.hpp"

#include <cstdlib>

namespace teachos::arch::exception_handling
{
  /**
   * @brief Override for the newlib abort function.
   *
   * @note newlib defines @p ::abort as a weak symbol, thus allowing implementations to override it by simply providing
   * a matching implementation. Since the default implemenatation calls a number of functions the kernel does not
   * currently implement, @p ::abort gets overridden to simply panic.
   */
  extern "C" auto abort() -> void { panic("Terminate was called, possibly due to an unhandled exception"); }
}  // namespace teachos::arch::exception_handling