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

#include <cstdlib>

namespace teachos::arch::exception_handling
{

  /**
   * @brief Override for the newlib abort function.
   *
   * 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