2022-04-23 04:59:50 -04:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2021-04-02 02:43:26 -04:00
|
|
|
|
|
|
|
#include "common/assert.h"
|
|
|
|
#include "common/common_funcs.h"
|
|
|
|
|
2021-04-14 19:07:40 -04:00
|
|
|
#include "common/settings.h"
|
2021-04-13 21:38:10 -04:00
|
|
|
|
2022-06-07 18:05:32 -04:00
|
|
|
void assert_check_condition(bool cond, std::function<void()>&& on_failure) {
|
2022-06-07 19:46:10 -04:00
|
|
|
if (!cond) [[unlikely]] {
|
2022-06-07 18:05:32 -04:00
|
|
|
on_failure();
|
|
|
|
|
|
|
|
if (Settings::values.use_debug_asserts) {
|
|
|
|
Crash();
|
|
|
|
}
|
2021-04-13 21:38:10 -04:00
|
|
|
}
|
2021-04-02 02:43:26 -04:00
|
|
|
}
|
2022-06-07 17:02:29 -04:00
|
|
|
|
|
|
|
[[noreturn]] void unreachable_impl() {
|
|
|
|
Crash();
|
|
|
|
throw std::runtime_error("Unreachable code");
|
|
|
|
}
|