// Copyright 2020 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT

#include <lib/zircon-internal/unique-backtrace.h>
#include <stdlib.h>
#include <zircon/assert.h>

void abort() { ZX_PANIC("abort() called!"); }

// The compiler generates calls to this for -fstack-protector.
extern "C" void __stack_chk_fail();

extern "C" void __stack_chk_fail() {
  // By trapping instead of panicking, we'll preserve more register state and
  // the exception handler will dump that state to the serial port or crash log.
  // If we're lucky the registers will still contain both the actual and
  // expected stack guard values so we can disambiguate stack corruption from
  // arch_thread / percpu struct corruption.
  CRASH_WITH_UNIQUE_BACKTRACE();
}
